|
@@ -38,6 +38,7 @@ from celery.utils.dispatch import Signal
|
|
|
from celery.utils.functional import first, maybe_list
|
|
|
from celery.utils.imports import instantiate, symbol_by_name
|
|
|
from celery.utils.objects import FallbackContext, mro_lookup
|
|
|
+from celery.contrib.autoretry import autoretry
|
|
|
|
|
|
from .annotations import prepare as prepare_annotations
|
|
|
from .defaults import DEFAULTS, find_deprecated_settings
|
|
@@ -282,6 +283,12 @@ class Celery(object):
|
|
|
'__wrapped__': fun}, **options))()
|
|
|
self._tasks[task.name] = task
|
|
|
task.bind(self) # connects task to this app
|
|
|
+
|
|
|
+ autoretry_on = options.get('autoretry_on')
|
|
|
+ retry_kwargs = options.get('retry_kwargs')
|
|
|
+
|
|
|
+ if autoretry_on:
|
|
|
+ task = autoretry(autoretry_on, retry_kwargs)(task)
|
|
|
else:
|
|
|
task = self._tasks[name]
|
|
|
return task
|