2008-09-10 25 views
3

Günün belirli bir saatinde bir blog gönderisini otomatik olarak gönderen bir Wordpress eklentisi yazmaya çalışıyorum. Örneğin, bir grup RSS beslemesini okuyun ve tüm yeni girişlerin günlük özetini yayınlayın.Wordpress eklentisinde zamanlanmış bir görevin çalıştırılması

İstediğim gibi bir şey yapan eklentiler var, ancak çoğu otomatik zamanlama için bir cron işine güveniyor. Yapmam gerekirse yapacağım, ama daha iyi bir yol olacağını umuyordum. Bir cron işi eklemek için tipik bir WordPress kullanıcısı almak tam olarak uygun değildir.

Wordpress eklentisinden çalıştırılan bir görevi zamanlamanın iyi bir yolu var mı? Tam olarak doğru zamanda koşmak zorunda değil.

cevap

0

vBulletin, her sayfa erişimindeki bir zamanlamayı temel olarak denetleyen ve o zamana kadar olan işlemleri tetikleyen bir tür Pseudo-Cron sistemi kullanır.

Wordpress ile çalıştığımdan bu yana bir süredir var, ama sanırım her sayfa görünümünde çalışırsa bunun gibi bir şey çalışması gerekir.

+0

:-)

Sadece benim 2 sent her teşebbüs yorum spam muhtaç hale varsa, milisaniye doğruluğunu olabilir. :-) –

0

Bunu yapmanın en iyi yolunun bir sözde-cron ile olduğunu düşünüyorum. Bunu birkaç kez gördüm ve zamanlamada kesin olmamasına rağmen, yapmanız gereken şeyi yapmalı. Wordpress'ten beri, index.php her zaman .htaccess'deki ayarlara dayanan ilk şeydir, pseudo-cron.php adlı bir dosya oluşturun, kök dizinine dökün ve sonra dizinden bir kez isteyin. Birisi siteye her ne zaman girerse, o zaman çalışır ve bir betik başlatmak için kullanabilir ve günün saatine bağlı olarak ve bir önceki özet çalıştırıldığında başka bir günlük özet oluşturmanın gerekip gerekmediğini kontrol edebilirsiniz. Bu yürütmek için blog "isabet" için birini gerektirir

3

sözde cron iyi ama sahiptir iki mesele

1 olduğunu. Düşük hacimli siteler potansiyel olarak geniş kapsamlı yürütme sürelerine sahip olacaktır, bu nedenle zamanla ilgili iki spesifik olma.

2, Sayfa yüklenmeden önce işlem gerçekleşir. Öyleyse eğer yürütme zamanı gerçekleşirse ve çok fazla "cron" girişiniz varsa, onlara alt standart bir deneyim sağlayarak ziyaretçileri üzüntüsünüz.

+0

# 2 hakkında yanlış olduğunu düşünüyorum. WordPress, işi başlatmak için kendisine eşzamansız bir curl() çağrısı üretir, böylece ziyaretçiler için dikkate değer bir gecikme olmaz. Geçici çözüm # 1 istiyorsanız, bir cron işini http://example.com/wp-cron.php adresine wget olarak ayarlayabilirsiniz. –

İlgili konular