2012-03-10 118 views
5

我已經得到了Celery任務,使用教程中的默認設置以及在Ubuntu上運行的rabbitmq。當我毫不拖延地安排任務時,一切都很好,但是當我給他們一個eta時,他們會在未來安排好,就好像我的時鐘已經關閉了一樣。celery任務eta關閉,使用rabbitmq

這裏是詢問任務的一些Python代碼:

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) 

所以,第一個應該馬上出去,然後每兩秒鐘。看着我的芹菜控制檯,第一個立即發生,然後其他人都計劃開的兩個秒,但是從明天開始:

[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] 

我完全陌生的兩個芹菜的RabbitMQ等如何解決任何提示這或尋找原因的地方會很好。這是在Ubuntu的VMWare虛擬機上,但我的時鐘設置正確。 謝謝!

回答

2

我認爲它實際上按照您的預期工作。左邊的時間(在方括號和INFO/MainProcess之前)在當地時間內呈現,但是eta時間顯示爲UTC時間。例如:

拿在控制檯輸出的第二行提出的ETA時間:

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

減去8小時(-08:00是時區偏移),你會得到:

2012-03-09 17:32:42.971072 

哪發送時間後僅2秒:

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

我希望讓森SE。處理時間往往讓我頭痛。

+2

感謝您的迴應,但如果是這樣的話,我會認爲任務會執行。第一個任務(倒計數= 0)執行,但其他任何人都不執行,他們應該在彼此之後執行2秒。 – 2012-03-11 01:05:15

相關問題