Я неоднократно проверял решение -HUP с помощью автоматического сценария, но обнаружил, что примерно в 5% случаев работник перестает выбирать новые задания после перезапуска.
Более надежное решение:
stop <celery_service>
start <celery_service>
, который я использовал сотни раз без каких-либо проблем.
Из Python вы можете запустить:
import subprocess
service_name = 'celery_service'
for command in ['stop', 'start']:
subprocess.check_call(command + ' ' + service_name, shell=True)