Questa è una domanda di follow-up alla mia precedente interrogazione: Cancel an already executing task with Celery?django sedano terminare sottoprocessi di attività
celery.task.control.revoke({task_id}, terminate=True)
effettivamente uccidere il mio lavoratore che esegue l'attività. Ora ho il problema che il mio compito sta eseguendo sottoprocessi che non muoiono quando l'attività viene revocata.
Questo post di dmarkey http://dmarkey.com/wordpress/2011/09/07/killing-child-processes-of-celery-tasks-on-a-timeout/ è il più vicino che ho visto a quello che voglio fare, tranne che io non voglio uccidere il timeout, ma piuttosto quando Revoco() con il task_id.
Considerando che tutto ciò che ho è (stringa) task_id, c'è comunque un modo per eliminare tali sottoprocessi? Grazie per il vostro aiuto - non ho abbastanza esperienza con questo come mi piacerebbe, la navigazione dei documenti è una sfida!
C'è un buon modo per ottenere il pid (s) per l'esecuzione di sottoprocessi? – dcoffey3296
Forse, ma non ne sono a conoscenza. Forse potresti tenerne traccia quando vengono creati? Modifica: in realtà, il codice nel tuo link (di dmarkey) sembra funzionare o no? – aganders3