|  | @@ -32,7 +32,7 @@ celeryd at %%(hostname)s.
 | 
	
		
			
				|  |  |  """ % {"EMAIL_SIGNATURE_SEP": EMAIL_SIGNATURE_SEP}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -def jail(task_id, task_name, func, args, kwargs, on_acknowledge=None):
 | 
	
		
			
				|  |  | +def jail(task_id, task_name, func, args, kwargs):
 | 
	
		
			
				|  |  |      """Wraps the task in a jail, which catches all exceptions, and
 | 
	
		
			
				|  |  |      saves the status and result of the task execution to the task
 | 
	
		
			
				|  |  |      meta backend.
 | 
	
	
		
			
				|  | @@ -80,10 +80,6 @@ def jail(task_id, task_name, func, args, kwargs, on_acknowledge=None):
 | 
	
		
			
				|  |  |      # Backend process cleanup
 | 
	
		
			
				|  |  |      default_backend.process_cleanup()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    # Handle task acknowledgement.
 | 
	
		
			
				|  |  | -    if on_acknowledge:
 | 
	
		
			
				|  |  | -        on_acknowledge()
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      try:
 | 
	
		
			
				|  |  |          result = func(*args, **kwargs)
 | 
	
		
			
				|  |  |      except (SystemExit, KeyboardInterrupt):
 | 
	
	
		
			
				|  | @@ -149,14 +145,14 @@ class TaskWrapper(object):
 | 
	
		
			
				|  |  |      fail_email_body = TASK_FAIL_EMAIL_BODY
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def __init__(self, task_name, task_id, task_func, args, kwargs,
 | 
	
		
			
				|  |  | -            on_acknowledge=None, **opts):
 | 
	
		
			
				|  |  | +            on_ack=None, **opts):
 | 
	
		
			
				|  |  |          self.task_name = task_name
 | 
	
		
			
				|  |  |          self.task_id = task_id
 | 
	
		
			
				|  |  |          self.task_func = task_func
 | 
	
		
			
				|  |  |          self.args = args
 | 
	
		
			
				|  |  |          self.kwargs = kwargs
 | 
	
		
			
				|  |  |          self.logger = kwargs.get("logger")
 | 
	
		
			
				|  |  | -        self.on_acknowledge = on_acknowledge
 | 
	
		
			
				|  |  | +        self.on_ack = on_ack
 | 
	
		
			
				|  |  |          for opt in ("success_msg", "fail_msg", "fail_email_subject",
 | 
	
		
			
				|  |  |                  "fail_email_body"):
 | 
	
		
			
				|  |  |              setattr(self, opt, opts.get(opt, getattr(self, opt, None)))
 | 
	
	
		
			
				|  | @@ -193,7 +189,7 @@ class TaskWrapper(object):
 | 
	
		
			
				|  |  |              raise NotRegistered(task_name)
 | 
	
		
			
				|  |  |          task_func = tasks[task_name]
 | 
	
		
			
				|  |  |          return cls(task_name, task_id, task_func, args, kwargs,
 | 
	
		
			
				|  |  | -                    on_acknowledge=message.ack, logger=logger)
 | 
	
		
			
				|  |  | +                    on_ack=message.ack, logger=logger)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def extend_with_default_kwargs(self, loglevel, logfile):
 | 
	
		
			
				|  |  |          """Extend the tasks keyword arguments with standard task arguments.
 | 
	
	
		
			
				|  | @@ -218,8 +214,11 @@ class TaskWrapper(object):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |          task_func_kwargs = self.extend_with_default_kwargs(loglevel, logfile)
 | 
	
		
			
				|  |  | +        # acknowledge task as being processed.
 | 
	
		
			
				|  |  | +        if self.on_ack:
 | 
	
		
			
				|  |  | +            self.on_ack()
 | 
	
		
			
				|  |  |          return jail(self.task_id, self.task_name, self.task_func,
 | 
	
		
			
				|  |  | -                    self.args, task_func_kwargs, self.on_acknowledge)
 | 
	
		
			
				|  |  | +                    self.args, task_func_kwargs)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def on_success(self, ret_value, meta):
 | 
	
		
			
				|  |  |          """The handler used if the task was successfully processed (
 | 
	
	
		
			
				|  | @@ -271,7 +270,8 @@ class TaskWrapper(object):
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  |          task_func_kwargs = self.extend_with_default_kwargs(loglevel, logfile)
 | 
	
		
			
				|  |  |          jail_args = [self.task_id, self.task_name, self.task_func,
 | 
	
		
			
				|  |  | -                     self.args, task_func_kwargs, self.on_acknowledge]
 | 
	
		
			
				|  |  | +                     self.args, task_func_kwargs]
 | 
	
		
			
				|  |  |          return pool.apply_async(jail, args=jail_args,
 | 
	
		
			
				|  |  |                  callbacks=[self.on_success], errbacks=[self.on_failure],
 | 
	
		
			
				|  |  | +                on_ack=self.on_ack,
 | 
	
		
			
				|  |  |                  meta={"task_id": self.task_id, "task_name": self.task_name})
 |