2012-03-10 55 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

相关问题