我将 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)