芹菜启动工人并立即击败

Celery start worker and beats at once

使用 celery 节拍的自定义调度程序卡住了一段时间:

celery -A myapp worker -S redbeat.RedBeatScheduler -E -B -l info

我的想法是,这将使用 redbeat.RedBeatScheduler 作为其调度程序同时启动 celery worker 和 celery beats。它甚至说 beat: Staring..,但它显然没有使用指定的调度程序。没有cron任务是这样执行的。

然而,当我将此命令拆分为单独的 workerbeats 时,这意味着

celery -A myapp worker -E -l info
celery -A myapp beat -S redbeat.RedBeatScheduler

一切正常。

有什么方法可以合并这两个命令吗?

我认为 Celery worker 不像 beat 那样有 -S 参数。这是 --helps 所说的:

--scheduler SCHEDULER Scheduler class to use. Default is celery.beat.PersistentScheduler

所以我建议您使用 --scheduler 选项和 运行 celery -A myapp worker --scheduler redbeat.RedBeatScheduler -E -B -l info 代替。