Come gli stati di Celeria documentation, l'attività già in esecuzione non verrà interrotta chiamando .revoke()
, a meno che non sia impostato terminate=True
. Ma non è raccomandato, perché ucciderà il lavoratore stesso, che potrebbe aver già avviato un'altra attività. Ciò significa che non esiste un modo affidabile e stabile per farlo?Esiste un modo per arrestare in modo non violento una determinata attività di sedano?
EDIT: celery.contrib.abortable
non mi va bene, perché, come afferma la documentazione, funziona solo con i back-end del database.
Dipende l'operazione che si sta tentando di interrompere (di rete, file, operazioni di database, ecc), si prega di dare un'occhiata a questo esempio: http://stackoverflow.com/questions/37039941/celery- python-revoke Nel mio caso il mio compito principale richiama i processi figli che non sono terminati a meno che non invii un segnale SIGKILL. – spicyramen
Possibile duplicato di [Arresto del compito di sedano con garbo] (http://stackoverflow.com/questions/16493364/stopping-celery-task-gracefully) – Louis