我正在升级芹菜和django-芹菜:
celery==2.4.5
django-celery==2.3.3
要:
celery==3.0.24
django-celery==3.0.23
点数升级后我运行迁移,一切都很好。
然后我用以下命令重新启动芹菜工人和芹菜:
django-admin.py celery worker --loglevel=DEBUG --config=portal.settings.development -E
django-admin.py celery beat --loglevel=DEBUG --config=portal.settings.development
芹菜击败初始输出显示它知道任务:
__ - ... __ - _
Configuration ->
. broker -> amqp://zonza:**@localhost:5672/zonza
. loader -> djcelery.loaders.DjangoLoader
. scheduler -> djcelery.schedulers.DatabaseScheduler
. logfile -> [stderr]@%DEBUG
. maxinterval -> now (0s)
[INFO] Wed, 18 Jun 2014 13:31:18 +0000 celery.beat 2184 140177823078144 beat: Starting...
[2014-06-18 13:31:18,332: DEBUG/MainProcess] DatabaseScheduler: intial read
[2014-06-18 13:31:18,332: INFO/MainProcess] Writing entries...
[2014-06-18 13:31:18,333: DEBUG/MainProcess] DatabaseScheduler: Fetching database schedule
[2014-06-18 13:31:18,366: DEBUG/MainProcess] Current schedule:
<ModelEntry: SOON_EXPIRY_ALERT SOON_EXPIRY_ALERT(*[], **{}) {4}>
<ModelEntry: celery.backend_cleanup celery.backend_cleanup(*[], **{}) {4}>
<ModelEntry: REFRESH_DB_CACHE REFRESH_DB_CACHE(*[], **{}) {4}>
现在我的周期性任务都没有运行:/任何想法?
编辑:如果我将调度程序设置更改为默认的'celery.beat.PersistentScheduler',则任务将起作用。但我认为我们需要在这个项目中使用djcelery,原因有很多
edit2 :大约40分钟后,任务现在开始正常运行,这显然不理想,我不明白为什么
答案 0 :(得分:2)
它应该在某个地方的更改日志中,但是Celery从当地时间的存储日期变为以UTC格式存储它们。
数据库调度程序无法自动转换为新格式,因此您需要为每个定期任务重置last_run_at字段。
类似的东西:
UPDATE djcelery_periodic_task SET last_run_at=NULL