systemd를 사용하여 다시 시작하면 Celery Worker가 조기 종료됩니다.

systemd를 사용하여 다시 시작하면 Celery Worker가 조기 종료됩니다.

나는 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

또한 SIGTERM을 보내기 전에 작업이 완료될 때까지 최소 90초를 기다려야 한다는 systemd 문서도 읽었습니다. 다시 시작 명령을 실행한 후 10초 이내에 이 오류가 발생합니다.

내가 뭘 잘못했나요?

셀러리 버전 사용: 5.2.2(dawn-chorus)

관련 정보