Używam Celery do zarządzania zadaniami asynchronicznymi. Czasami jednak proces selekcji spada, co nie powoduje wykonania żadnego zadania. Chciałbym móc sprawdzić stan selera i upewnić się, że wszystko działa poprawnie, a jeśli wykryję jakiekolwiek problemy, wyświetl komunikat o błędzie dla użytkownika. Z dokumentacji Selera Worker wygląda na to, że mógłbym użyć do tego celu ping lub inspect, ale ping wydaje się być hackowaty i nie jest jasne, w jaki dokładnie sposób ma być używana inspekcja (jeśli inspect(). Registered() jest pusty?).Wykrywanie, czy Seler jest dostępny/działa
Wszelkie wskazówki na ten temat będą mile widziane. Zasadniczo co szukam to metoda tak:
def celery_is_alive():
from celery.task.control import inspect
return bool(inspect().registered()) # is this right??
EDIT: To nawet nie wygląda zarejestrowany() jest dostępna na selera 2.3.3 (chociaż wymienić go na 2,1 docs). Może ping jest właściwą odpowiedzią.
EDYCJA: Ping również nie wygląda tak, jak myślałem, więc nadal nie jestem pewien odpowiedzi tutaj.
Czy odpowiedź poniżej nie pracować dla Ciebie? Jako ktoś, kto ma podobny problem do rozwiązania, chciałbym potwierdzić. – kojiro