Celery Beat 4.2未从Django DB中提取,始终调用PersistentStore

时间:2018-06-22 16:01:23

标签: django celery celerybeat

使用: CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler' 配置后,运行celery -A app beat -l info会正确启动并返回scheduler -> django_celery_beat.schedulers.DatabaseScheduler

当“周期任务”表发生更改时,Celery会正确地注意到通知,但是没有任何一个任务运行过。 (我在一个单独的进程中运行一个工作程序)我注意到,即使设置了数据库调度程序,我也得到了celerybeat-schedule.db文件,这让我怀疑Celery.beat是否正在读取正确的数据库。

拖放到控制台:

from celery.beat import Service
test = Service(current_app).get_scheduler()
print(test)
<celery.beat.PersistentScheduler object at 0x10abec090>
test.get_schedule()
{u'celery.backend_cleanup': <ScheduleEntry: celery.backend_cleanup      celery.backend_cleanup() <crontab: 0 4 * * * (m/h/d/dM/MY)>}

似乎正在使用自动设置的backend_cleanup任务调用celerybeat-schedule.db文件。

Celery Beat正在正确监视我通过Django Admin添加的任务,但是实际读取的Beat并将其发送给工作人员的那一部分仅读取celerybeat-schedule.db文件,该文件包含自动创建的清理任务。

0 个答案:

没有答案