【发布时间】:2012-07-30 06:51:51
【问题描述】:
我遇到了周期性任务未运行的问题。我使用 redis 作为后端,可以手动运行任务,这是 celery 调试日志
[ModelEntry: myproject.myapp.tasks.MyPeriodicTask myproject.myapp.tasks.MyPeriodicTask(*[], **{}) { freq: 10.00 seconds }] [2012-08-01 13:45:53,764: DEBUG/MainProcess] 消费者:准备好接受任务了! [2012-08-01 13:45:53,801:调试/节拍] Celerybeat:以最大间隔-> 5.00 秒滴答作响 [2012-08-01 13:45:53,808:调试/节拍] Celerybeat:在 5.00 秒内醒来。 [2012-08-01 13:45:58,814:调试/节拍] Celerybeat:在 5.00 秒内醒来。 [2012-08-01 13:46:03,828:调试/节拍] Celerybeat:在 5.00 秒内醒来。当我手动运行任务时,一切正常。 django 和 celery 中的时区是一样的
【问题讨论】:
-
你的 Django 日志是怎么说的?它是否显示 Celerybeat 触发了某些中断?
-
你在运行 celery worker (
celeryd) 和 celerybeat 吗? -
如何启动 celeryd ?试试 python manage.py celeryd -l INFO -E -B -c 2 --discard
-
我也有同样的问题。我以为它在 Celery 中,但问题可能出在 django-celery 中。
-
检查以确保您有一个配置为使用通过 celerybeat 创建的任务的 celeryd 工作人员。此外,您可能会检查以确保将 Celerybeat 配置为在正确的目录中工作。您可能无意中在不同的文件夹中运行了 celerybeat,它无法正常工作,因为它没有找到您的任务。
标签: python django celery celerybeat