|
@@ -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
|