Ver Fonte

Mark revoked tasks always as REVOKED

Before, only expired tasks were marked as REVOKED. Revoked retrying tasks would
stay as RETRY.

Closes #871
Hynek Schlawack há 12 anos atrás
pai
commit
440fad0e17
1 ficheiros alterados com 2 adições e 2 exclusões
  1. 2 2
      celery/worker/job.py

+ 2 - 2
celery/worker/job.py

@@ -225,8 +225,6 @@ class Request(object):
         """If expired, mark the task as revoked."""
         if self.expires and datetime.now(self.tzlocal) > self.expires:
             revoked_tasks.add(self.id)
-            if self.store_errors:
-                self.task.backend.mark_as_revoked(self.id)
             return True
 
     def terminate(self, pool, signal=None):
@@ -248,6 +246,8 @@ class Request(object):
         if self.id in revoked_tasks:
             warn('Skipping revoked task: %s[%s]', self.name, self.id)
             self.send_event('task-revoked', uuid=self.id)
+            if self.store_errors:
+                self.task.backend.mark_as_revoked(self.id)
             self.acknowledge()
             self._already_revoked = True
             send_revoked(self.task, terminated=False,