Bläddra i källkod

celery.states: Added RECEIVED state (detail used by events only)

Ask Solem 14 år sedan
förälder
incheckning
b777a568cf
1 ändrade filer med 9 tillägg och 12 borttagningar
  1. 9 12
      celery/events/state.py

+ 9 - 12
celery/events/state.py

@@ -56,6 +56,9 @@ class Task(Element):
                     "result", "eta", "runtime", "expires",
                     "exception")
 
+    _merge_rules = {"RECEIVED": ("name", "args", "kwargs",
+                                 "retries", "eta", "expires")}
+
     _defaults = dict(uuid=None,
                      name=None,
                      state=states.PENDING,
@@ -99,33 +102,27 @@ class Task(Element):
 
     def on_received(self, timestamp=None, **fields):
         self.received = timestamp
-        self.state = "RECEIVED"
-        self.update(fields, timestamp=timestamp)
+        self.update("RECEIVED", timestamp, fields)
 
     def on_started(self, timestamp=None, **fields):
-        self.state = states.STARTED
         self.started = timestamp
-        self.update(fields, timestamp=timestamp)
+        self.update(states.STARTED, timestamp, fields)
 
     def on_failed(self, timestamp=None, **fields):
-        self.state = states.FAILURE
         self.failed = timestamp
-        self.update(fields, timestamp=timestamp)
+        self.update(states.FAILURE, timestamp, fields)
 
     def on_retried(self, timestamp=None, **fields):
-        self.state = states.RETRY
         self.retried = timestamp
-        self.update(fields, timestamp=timestamp)
+        self.update(states.RETRY, timestamp, fields)
 
     def on_succeeded(self, timestamp=None, **fields):
-        self.state = states.SUCCESS
         self.succeeded = timestamp
-        self.update(fields, timestamp=timestamp)
+        self.update(states.SUCCESS, timestamp, fields)
 
     def on_revoked(self, timestamp=None, **fields):
-        self.state = states.REVOKED
         self.revoked = timestamp
-        self.update(fields, timestamp=timestamp)
+        self.update(states.REVOKED, timestamp, fields)
 
 
 class State(object):