|
@@ -15,7 +15,7 @@ from inspect import getargspec
|
|
|
|
|
|
from celery import registry
|
|
from celery import registry
|
|
from celery.app import base
|
|
from celery.app import base
|
|
-from celery.utils import instantiate
|
|
|
|
|
|
+from celery.utils import cached_property, instantiate
|
|
from celery.utils.functional import wraps
|
|
from celery.utils.functional import wraps
|
|
|
|
|
|
# Apps with the :attr:`~celery.app.base.BaseApp.set_as_current` attribute
|
|
# Apps with the :attr:`~celery.app.base.BaseApp.set_as_current` attribute
|
|
@@ -105,7 +105,7 @@ class App(base.BaseApp):
|
|
def _create_task_cls(fun):
|
|
def _create_task_cls(fun):
|
|
options["app"] = self
|
|
options["app"] = self
|
|
options.setdefault("accept_magic_kwargs", False)
|
|
options.setdefault("accept_magic_kwargs", False)
|
|
- base = options.pop("base", None) or self.create_task_cls()
|
|
|
|
|
|
+ base = options.pop("base", None) or self.Task
|
|
|
|
|
|
@wraps(fun, assigned=("__module__", "__name__"))
|
|
@wraps(fun, assigned=("__module__", "__name__"))
|
|
def run(self, *args, **kwargs):
|
|
def run(self, *args, **kwargs):
|
|
@@ -128,6 +128,11 @@ class App(base.BaseApp):
|
|
return inner_create_task_cls(**options)(*args)
|
|
return inner_create_task_cls(**options)(*args)
|
|
return inner_create_task_cls(**options)
|
|
return inner_create_task_cls(**options)
|
|
|
|
|
|
|
|
+ @cached_property
|
|
|
|
+ def Task(self):
|
|
|
|
+ """Default Task base class for this application."""
|
|
|
|
+ return self.create_task_cls()
|
|
|
|
+
|
|
def __repr__(self):
|
|
def __repr__(self):
|
|
return "<Celery: %s:0x%x>" % (self.main or "__main__", id(self), )
|
|
return "<Celery: %s:0x%x>" % (self.main or "__main__", id(self), )
|
|
|
|
|