【发布时间】:2020-05-31 14:50:03
【问题描述】:
我有一个问题,即 django_celery_beat 的 DatabaseScheduler 不运行定期任务。或者我应该说当调度器是 DatabaseScheduler 时 celery beat 没有找到任何任务。如果我使用标准调度程序,任务会定期执行。
我在 heroku 上设置 celery,使用一个 dyno 为 worker 一个用于 beat(当然还有一个用于 web)。
我知道 beat 和 worker 连接到 redis 和 postgres 以获取任务结果。
我通过选择一个任务从 django admin 运行的每个定期任务,然后“运行选定的任务”都会被执行。
但是,大约两天后,我才试图弄清楚为什么 beat/worker 无法找到我安排了每 10 秒执行一次的任务,或者使用 cron(甚至重新启动 beat并且远程不会改变它)。
我有点绝望,我的下一步是尝试一下 redbeat。
任何有关如何解决此特定问题的帮助将不胜感激。我怀疑问题出在is_due 方法中。我正在使用 UTC(在 celery 和 django 中),所有 cron 都是基于 UTC 的。我在节拍日志中看到的只是“写条目..”。
我尝试将 celery 版本从 4.3 更改为 4.4,django celery beat 从 1.4.0 更改为 1.5.0 到 1.6.0
任何帮助将不胜感激。
【问题讨论】:
标签: django celery django-celery-beat