2012-03-10 19 views
5

kullanarak, ubuntu üzerinde çalışan öğreticiler ve rabbitmq varsayılan ayarları kullanarak, Celery görevleri tamamlandı alıyorum. Bir görevi gecikme olmadan planladığımda her şey yolunda, ama onlara bir eta verdiğimde, saatim bir yerdeymiş gibi planlanmış oluyorlar. kereviz görevi eta kapalı, rabbitmq

for index, to_address in enumerate(email_addresses): 
     # schedule one email every two seconds 
     delay = index * 2 
     log.info("MessageUsersFormView.process_action() scheduling task," 
      "email to %s, countdown = %i" % (to_address, delay)) 
     tasks.send_email.apply_async(args=[to_address, subject, body], 
      countdown = delay) 

Yani ilk hemen dışarı gitmeli ve sonra her iki saniyede: Burada

görevler istiyor bazı piton kodudur. Benim kereviz konsolunda baktığımızda, ilki hemen gerçekleşir ve sonra diğerleri iki saniye arayla yapılacak olmasına karşın yarın başlıyor:

[2012-03-09 17:32:40,988: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[24fafc0b-071b-490b-a808-29d47bbee435] 
[2012-03-09 17:32:40,989: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[3eb6c3ea-2c84-4368-babe-8a2ac0093836] eta:[2012-03-10 01:32:42.971072-08:00] 
[2012-03-09 17:32:40,991: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[a53110d6-b704-4d9c-904a-8d74b99a33af] eta:[2012-03-10 01:32:44.971779-08:00] 
[2012-03-09 17:32:40,992: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[2363329b-47e7-4edd-b38e-b09fed232003] eta:[2012-03-10 01:32:46.972422-08:00] 

Ben Kereviz ve RabbitMQ hem tamamen yeni olduğum bu yüzden nasıl giderileceği ile ilgili herhangi bir ipucu Bu veya neden aramak için harika olurdu. Bu, Ubuntu'nun bir VMWare sanal makinesinde, ancak saatin doğru ayarlandığını biliyorum. Teşekkürler!

cevap

2

Sanırım gerçekten beklediğiniz gibi çalışıyor. Soldaki zaman (köşeli ayraçlar ve INFO/MainProcess'ten önce), yerel saatinde sunulur, ancak eta saati, UTC saati olarak gösterilir. Örneğin: (zaman dilimi ofset -08:00 edilir)

2012-03-10 01:32:42.971072-08:00 

Çıkar 8 saat ve almak:

konsol çıktı ikinci satırında sunulan ETA zaman ayırın

2012-03-09 17:32:42.971072 

Hangi Gönderilen süre bittikten 2 saniye sonra:

2012-03-09 17:32:40,989 

se. Zamanla uğraşmak sık sık başım ağrıyor.

+2

Yanıt için teşekkürler, ancak bu durumda, görevlerin yürütüleceğini düşünürdüm. Te ilk görev (geri sayım = 0) yürütür, ancak diğerlerinin hiçbiri, birbiri ardına 2 saniye çalışacakları yerde olmaz. –