瀏覽代碼

Remove RetryTask exception, and add auto_retry attribute instead.

Ask Solem 16 年之前
父節點
當前提交
5ffa8df40a
共有 1 個文件被更改,包括 3 次插入8 次删除
  1. 3 8
      celery/task.py

+ 3 - 8
celery/task.py

@@ -11,10 +11,6 @@ import uuid
 import traceback
 
 
-class RetryTask(Exception):
-    """The task has failed and is to be appended to the retry queue."""
-
-
 def delay_task(task_name, *args, **kwargs):
     """Delay a task for execution by the ``celery`` daemon.
 
@@ -118,8 +114,7 @@ class Task(object):
     type = "regular"
     max_retries = 0 # unlimited
     retry_interval = timedelta(seconds=2)
-
-    RetryTask = RetryTask
+    auto_retry = False
 
     def __init__(self):
         if not self.name:
@@ -130,13 +125,13 @@ class Task(object):
         the ``run`` method. It also catches any exceptions and logs them."""
         try:
             retval = self.run(*args, **kwargs)
-        except RetryTask, e:
-            self.retry(kwargs["task_id"], args, kwargs)
         except Exception, e:
             logger = self.get_logger(**kwargs)
             logger.critical("Task got exception %s: %s\n%s" % (
                                 e.__class__, e, traceback.format_exc()))
             self.handle_exception(e, args, kwargs)
+            if self.auto_retry:
+                self.retry(kwargs["task_id"], args, kwargs)
             return
         else:
             return retval