Определить, доступен ли / запущен Celery

Я использую Сельдерей для управления асинхронными задачами. Однако иногда процесс сельдерея останавливается, что не приводит к выполнению ни одной из задач. Я хотел бы иметь возможность проверить состояние сельдерея и убедиться, что все работает нормально, и если я обнаружу какие-либо проблемы, отобразить сообщение об ошибке для пользователя. Из документации 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 он указан). Может быть, пинг - правильный ответ.

РЕДАКТИРОВАТЬ: Ping также, похоже, не делает то, что я думал, поэтому все еще не уверен, что здесь ответ.

48
задан Cory 14 December 2011 в 19:34
поделиться