Sto utilizzando Celery per gestire attività asincrone. Occasionalmente, tuttavia, il processo di sedimentazione si interrompe e non viene eseguito nessuno dei compiti. Vorrei poter controllare lo stato del sedano e accertarmi che tutto funzioni correttamente e, se rilevo problemi, viene visualizzato un messaggio di errore per l'utente. Dalla documentazione di Celery Worker sembra che potrei essere in grado di usare ping o inspect per questo, ma ping sembra hacky e non è chiaro esattamente come deve essere usato inspect (se inspect(). Registered() è vuoto?).Rileva se Celery è disponibile/in esecuzione
Qualsiasi consiglio su questo sarebbe apprezzato. Fondamentalmente quello che sto cercando è un metodo in questo modo:
def celery_is_alive():
from celery.task.control import inspect
return bool(inspect().registered()) # is this right??
EDIT: Non sembra nemmeno registrati() è disponibile sul sedano 2.3.3 (anche se la lista delle 2.1 documentazione di esso). Forse ping è la risposta giusta.
EDIT: Ping non sembra fare ciò che pensavo avrebbe fatto, quindi non sono ancora sicuro della risposta qui.
ha fatto la risposta qui sotto non funziona per voi? Come qualcuno che ha un problema simile da risolvere, mi piacerebbe qualche conferma. – kojiro