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