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