【问题标题】:Django periodic tasks in Celery芹菜中的Django定期任务
【发布时间】: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


【解决方案1】:

正如Celery issue #4184 中所报告的,您可以通过将 CELERY_TIMEZONE 更改为 UTC 来解决此问题。我遇到了类似的问题,但使用了数据库调度程序,这为我解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    相关资源
    最近更新 更多