我在 django 项目设置文件中设置了
CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler"
。但好像没用。
我检查了celerybeat日志,发现celery节拍调度程序是
celery.beat.PersistentScheduler
。我只能在 celery 节拍启动文件中将节拍调度程序设置为“DatabaseScheduler”(celery -A config beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
)。
如何在 django 设置文件中设置调度程序?我不想在 celerybeat 启动命令中设置调度程序。
将以下选项添加到 Django settings.py
芹菜=< 4.4.0:
CELERYBEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
对于芹菜> 4.4.0:
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
我也有同样的问题。虽然我设置了 django 设置 CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler",但 celerybeat 没有使用调度程序 django_celery_beat.schedulers:DatabaseScheduler。它使用 celery.beat.PersistentScheduler。
发现 celery 不支持变量 CELERY_BEAT_SCHEDULER,因为 celery.py 文件中的代码 app.config_from_object('django.conf:settings') 中未使用命名空间。
将其更改为 app.config_from_object('django.conf:settings', namespace='CELERY') 后,Celery Beat 开始正确使用 django 设置 CELERY_BEAT_SCHEDULER 并且数据库中的定期计划开始工作。