只是为了澄清一下 - 我正在开发一个 systemd 服务文件celerybeat.service
,它应该负责处理 Celery beat。我目前正在做的是调用一个脚本,该脚本读取/var/run/celery/celerybeat.pid
,用该 PID 终止进程,然后再次启动 Celery beat 进程。
有没有更好的方法来实现这一点?
答案1
我们要做的是这样启动 celery(我们的 celery 应用程序在 server.py 中):
python -m server --app=server multi start workername -Q queuename -c 30 --pidfile=celery.pid --beat
启动一个有 30 个工作进程的 celery beat 进程,并将 pid 保存在 celery.pid 中。
然后我们可以调用它来干净地退出:
celery multi stop workername --pidfile=celery.pid