Просто чтобы прояснить ситуацию - я работаю над служебным файлом systemd celerybeat.service
который должен позаботиться о стебле сельдерея. В данный момент я вызываю сценарий, который читает /var/run/celery/celerybeat.pid
, завершает процесс с этим PID, а затем снова запускает процесс Beat Celery.
Есть ли лучший способ добиться этого?
Что мы делаем, так это запускаем сельдерей следующим образом (наше приложение для сельдерея находится в server.py):
python -m server --app=server multi start workername -Q queuename -c 30 --pidfile=celery.pid --beat
Это запускает процесс celery beat с 30 рабочими процессами и сохраняет pid в celery.pid.
Затем мы можем вызвать это для чистого выхода:
celery multi stop workername --pidfile=celery.pid