【问题标题】:setup celerybeat with supervisord使用 supervisord 设置 celerybeat
【发布时间】:2015-08-30 18:30:46
【问题描述】:

我对如何在 supervisord 过程控制系统中使用 celery beat 感到困惑。以下代码是 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 替换这条路径吗?谢谢。

【问题讨论】:

  • 你也可以接受答案!

标签: python celery supervisord celerybeat


【解决方案1】:

来自命令帮助:--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 中添加、修改和删除周期性任务。

【讨论】:

  • 嗨,我正在为我的 django 项目使用 django-celery 所以 'djcelery'。我收到此错误:找不到命令“芹菜”。我将如何在主管中设置 celery 命令的路径?感谢您的帮助。
  • 如果你使用的版本是旧的(比如我的),命令将是 celerybeat 而不是 celery。比如我用./manage.py celerybeat -S $CELERY_SCHEDULER --logfile=$CELERY_LOG_DIR/celerybeat.log
猜你喜欢
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 2018-03-11
  • 2012-06-08
  • 2013-04-14
  • 2014-06-14
  • 2018-02-04
相关资源
最近更新 更多