Pārlūkot izejas kodu

Forgot to commit some things in previous commit.

Ask Solem 15 gadi atpakaļ
vecāks
revīzija
8de640af6d
2 mainītis faili ar 21 papildinājumiem un 6 dzēšanām
  1. 10 0
      celery/task/base.py
  2. 11 6
      celery/worker/job.py

+ 10 - 0
celery/task/base.py

@@ -402,9 +402,19 @@ class Task(object):
         pass
 
     def execute(self, wrapper, pool, loglevel, logfile):
+        """The method the worker calls to execute the task.
+
+        :param wrapper: A :class:`celery.worker.job.TaskWrapper`.
+        :param pool: A :class:`celery.worker.pool.TaskPool` object.
+        :param loglevel: Current loglevel.
+        :param logfile: Name of the currently used logfile.
+
+        """
         wrapper.execute_using_pool(pool, loglevel, logfile)
 
 
+
+
 class ExecuteRemoteTask(Task):
     """Execute an arbitrary function or object.
 

+ 11 - 6
celery/worker/job.py

@@ -171,6 +171,9 @@ class TaskWrapper(object):
         [celery@%(hostname)s] Error: Task %(name)s (%(id)s): %(exc)s
     """
     fail_email_body = TASK_FAIL_EMAIL_BODY
+    _type = None # set by property: type
+    executed = False
+    time_start = None
 
     def __init__(self, task_name, task_id, args, kwargs,
             on_ack=noop, retries=0, **opts):
@@ -179,17 +182,13 @@ class TaskWrapper(object):
         self.retries = retries
         self.args = args
         self.kwargs = kwargs
-        self.logger = opts.get("logger")
-        self.eventer = opts.get("eventer")
         self.on_ack = on_ack
-        self.executed = False
-        self.time_start = None
+
         for opt in ("success_msg", "fail_msg", "fail_email_subject",
-                "fail_email_body"):
+                "fail_email_body", "logger", "eventer"):
             setattr(self, opt, opts.get(opt, getattr(self, opt, None)))
         if not self.logger:
             self.logger = get_default_logger()
-        self.task = tasks[self.task_name]
 
     def __repr__(self):
         return '<%s: {name:"%s", id:"%s", args:"%s", kwargs:"%s"}>' % (
@@ -340,3 +339,9 @@ class TaskWrapper(object):
             subject = self.fail_email_subject.strip() % context
             body = self.fail_email_body.strip() % context
             mail_admins(subject, body, fail_silently=True)
+
+    @property
+    def task(self):
+        if self._type is None:
+            self._type = tasks[self.task_name]
+        return self._type