Cla*_*ell 5 python heroku rabbitmq celery django-celery
在使用Celery和RabbitMQ时,无法让计划任务在指定的未来时间运行.
在Heroku服务器上使用Django,使用RabbitMQ插件.
问题:
有时候任务根本不会运行,有时它们会运行,但它们运行的时间会大幅度减少(例如一小时).
未运行的示例任务:
当我尝试使用倒计时或ETA运行任务时,它实际上从未执行过.这是一个未运行的示例ETA任务:
>>> dummy_task.apply_async(eta=datetime.datetime.now() + timedelta(seconds=60))
<AsyncResult: 03001c1c-329e-46a3-8180-b115688e1865>
Run Code Online (Sandbox Code Playgroud)
结果日志:
2012-07-24T14:03:08+00:00 app[scheduler.1]: [2012-07-24 10:03:08,909: INFO/MainProcess]
Got task from broker: events.tasks.dummy_task[910ff406-d51c-4c29-bdd1-fec1a8168c12]
eta:[2012-07-24 10:04:08.819528+00:00]
一分钟后没有任何反应.将unacknowledged message count在我的Heroku RabbitMQ的管理控制台增加一个和在那里停留.
这有效:
我确保芹菜任务已正确注册,RabbitMQ配置为通过验证我可以使用delay()方法运行任务来接受任务.
>>> dummy_task.delay()
<AsyncResult: 1285ff04-bccc-46d9-9801-8bc9746abd1c>
Run Code Online (Sandbox Code Playgroud)
结果日志:
2012-07-24T14:29:26+00:00 app[worker.1]: [2012-07-24 10:29:26,513: INFO/MainProcess]
Got task from broker: events.tasks.dummy_task[1285ff04-bccc-46d9-9801-8bc9746abd1c]
....
2012-07-24T14:29:26+00:00 app[worker.1]: [2012-07-24 10:29:26,571: INFO/MainProcess]
Task events.tasks.dummy_task[1285ff04-bccc-46d9-9801-8bc9746abd1c]
succeeded in 0.0261888504028s: None
任何有关这方面的帮助将不胜感激.非常感谢!
我大概明白了。因为我在调试,所以我很自然地将任务设置为在 5 或 10 分钟内运行。我不知道到底为什么,但我的设置很难处理这个问题。就好像它需要一定的时间来处理和排队任务一样。不管怎样,提前一个多小时左右安排的任务已经正常运行了。
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |