Я использую Celery для управления асинхронными задачами. Иногда, однако, процесс сельдерея снижается, что не приводит к тому, что ни одна из задач не выполняется. Я хотел бы иметь возможность проверить статус сельдерея и убедиться, что все работает нормально, и если я обнаруживаю какие-либо проблемы, выдает сообщение об ошибке пользователю. Из документации Celery Worker, похоже, я мог бы использовать ping или inspect для этого, но ping чувствует себя взломанным, и неясно, как именно будет использоваться проверка (если проверка(). register() пуста?).
Любое руководство по этому вопросу будет оценено по достоинству. В принципе, я ищу такой метод:
def celery_is_alive():
from celery.task.control import inspect
return bool(inspect().registered()) # is this right??
РЕДАКТИРОВАТЬ: он даже не похож на зарегистрированный() доступен на сельдерее 2.3.3 (даже при том, что в нем указаны документы 2.1). Возможно, пинг - правильный ответ.
РЕДАКТИРОВАТЬ: Ping также, похоже, не делает то, что я думал, что это будет делать, поэтому все еще не уверен ответ здесь.