Ver Fonte

Added Task.update_state(task_id, state, meta)

as a shortcut to task.backend.store_result(task_id, meta, state).
The backend interface is "private" and the terminology outdated,
so better to move this to Task so it can be used.
Ask Solem há 14 anos atrás
pai
commit
5fcf40f63b
1 ficheiros alterados com 12 adições e 0 exclusões
  1. 12 0
      celery/task/base.py

+ 12 - 0
celery/task/base.py

@@ -583,6 +583,18 @@ class BaseTask(object):
         """
         return self.app.AsyncResult(task_id, backend=self.backend)
 
+    def update_state(self, task_id, state, meta=None):
+        """Update task state.
+
+        :param task_id: Id of the task to update.
+        :param state: New state (:class:`str`).
+        :param meta: State metadata (:class:`dict`).
+
+        """
+        if meta is None:
+            meta = {}
+        self.backend.store_result(task_id, meta, state)
+
     def on_retry(self, exc, task_id, args, kwargs, einfo=None):
         """Retry handler.