Zgodnie ze stanem Selera documentation, zadanie już wykonywane nie zostanie przerwane przez wywołanie .revoke()
, chyba że ustawiono terminate=True
. Ale nie jest to zalecane, ponieważ zabije samego pracownika, który mógł już rozpocząć inne zadanie. Czy to oznacza, że nie ma niezawodnego, stabilnego sposobu na zrobienie tego?Czy istnieje sposób, aby zatrzymać pokojowo konkretne zadanie pracownika selera?
EDYCJA: nie pasuje do mnie, ponieważ, jak stwierdza dokumentacja, działa tylko z backendami baz danych.
To zależy od zadania, które próbują rozwiązać (sieć, plik operacji bazy danych, etc.), proszę spojrzeć na ten przykład: http://stackoverflow.com/questions/37039941/celery- python-revoke W moim przypadku moje główne zadanie wywołuje procesy potomne, które nie są zakończone, chyba że wyślę sygnał SIGKILL. – spicyramen
Prawdopodobny duplikat [Stopping z wdziękiem zadanie selekcji] (http://stackoverflow.com/questions/16493364/stopping-celery-task-gracefully) – Louis