使用 supervisord 设置 celerybeat

setup celerybeat with supervisord

我对如何将 celery beat 与 supervisord 过程控制系统一起使用感到困惑。以下代码是 supervisord 上的 celerybeat 程序示例。

; ================================
;  celery beat supervisor example
; ================================

[program:celerybeat]
; Set full path to celery program if using virtualenv
command=celery beat -A myapp --schedule /var/lib/celery/beat.db --loglevel=INFO

; remove the -A myapp argument if you are not using an app instance

directory=/path/to/project
user=nobody
numprocs=1
stdout_logfile=/var/log/celery/beat.log
stderr_logfile=/var/log/celery/beat.log
autostart=true
autorestart=true
startsecs=10

; if rabbitmq is supervised, set its priority higher
; so it starts first
priority=999

在第 7 行,它有以下代码:/var/lib/celery/beat.db,这是什么,我将用什么替换此路径?类似地,我将用 /var/log/celery/beat.log 替换此路径?谢谢

来自命令帮助:--schedule 是:

  -s SCHEDULE, --schedule=SCHEDULE
                    Path to the schedule database. The extension '.db'
                    will be appended to the filename. Default: celerybeat-
                    schedule

并且来自 docs

自定义调度程序类 可以在命令行(-S 参数)中指定。默认调度程序是 celery.beat.PersistentScheduler,它只是跟踪本地数据库文件(搁置)中的最后 运行 次。

django-celery 还附带一个调度程序,将调度存储在 Django 数据库中:

$ celery -A proj beat -S djcelery.schedulers.DatabaseScheduler

使用 django-celery 的调度程序,您可以从 Django Admin 添加、修改和删除定期任务。