diff options
Diffstat (limited to 'django/tasks/__init__.py')
| -rw-r--r-- | django/tasks/__init__.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/django/tasks/__init__.py b/django/tasks/__init__.py new file mode 100644 index 0000000000..ae7ae8dd7c --- /dev/null +++ b/django/tasks/__init__.py @@ -0,0 +1,45 @@ +from django.utils.connection import BaseConnectionHandler, ConnectionProxy +from django.utils.module_loading import import_string + +from . import checks, signals # NOQA +from .base import ( + DEFAULT_TASK_BACKEND_ALIAS, + DEFAULT_TASK_QUEUE_NAME, + Task, + TaskContext, + TaskResult, + TaskResultStatus, + task, +) +from .exceptions import InvalidTaskBackend + +__all__ = [ + "DEFAULT_TASK_BACKEND_ALIAS", + "DEFAULT_TASK_QUEUE_NAME", + "default_task_backend", + "task", + "task_backends", + "Task", + "TaskContext", + "TaskResult", + "TaskResultStatus", +] + + +class TaskBackendHandler(BaseConnectionHandler): + settings_name = "TASKS" + exception_class = InvalidTaskBackend + + def create_connection(self, alias): + params = self.settings[alias] + backend = params["BACKEND"] + try: + backend_cls = import_string(backend) + except ImportError as e: + raise InvalidTaskBackend(f"Could not find backend '{backend}': {e}") from e + return backend_cls(alias=alias, params=params) + + +task_backends = TaskBackendHandler() + +default_task_backend = ConnectionProxy(task_backends, DEFAULT_TASK_BACKEND_ALIAS) |
