使用 systemd 重新启动时 Celery Worker 过早退出

使用 systemd 重新启动时 Celery Worker 过早退出

我将 celery 与 systemd 一起使用。我注意到大多数时候重新启动时,我会在任务中失去工作人员。从 celery multi 文档来看,celery multi stopwait 似乎应该等待任务完成。

重启时出现以下错误:

Process "ForkPoolWorker-10" pid:16902 exited with "signal 15 (SIGTERM)"

celery.conf

[Unit]
Description=Celery background worker
After=network.target

[Service]
Type=forking
User=celery
Group=celery
WorkingDirectory=/src

ExecStart=celery multi start worker -A main.celery -Q celery --logfile=/data/celery.log --loglevel=info --concurrency=10 --pidfile=/var/run/celery/%%n.pid

ExecStop=celery multi stopwait worker --pidfile=/var/run/celery/%%n.pid

[Install]
WantedBy=multi-user.target

我还阅读了 systemd 文档,我们应该至少等待 90 秒才能完成任务,然后再发送 SIGTERM。我在运行重新启动命令后不到 10 秒内收到此错误。

我究竟做错了什么?

使用celery版本:5.2.2(dawn-chorus)

相关内容