__init__.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from celery import conf
  2. from celery.utils import get_cls_by_name
  3. from celery.utils.functional import curry
  4. from celery.loaders import current_loader
  5. BACKEND_ALIASES = {
  6. "amqp": "celery.backends.amqp.AMQPBackend",
  7. "cache": "celery.backends.cache.CacheBackend",
  8. "redis": "celery.backends.pyredis.RedisBackend",
  9. "mongodb": "celery.backends.mongodb.MongoBackend",
  10. "tyrant": "celery.backends.tyrant.TyrantBackend",
  11. "database": "celery.backends.database.DatabaseBackend",
  12. "cassandra": "celery.backends.cassandra.CassandraBackend",
  13. }
  14. _backend_cache = {}
  15. def get_backend_cls(backend):
  16. """Get backend class by name/alias"""
  17. if backend not in _backend_cache:
  18. aliases = dict(BACKEND_ALIASES, **current_loader().override_backends)
  19. _backend_cache[backend] = get_cls_by_name(backend, aliases)
  20. return _backend_cache[backend]
  21. """
  22. .. function:: get_default_backend_cls()
  23. Get the backend class specified in the ``CELERY_RESULT_BACKEND`` setting.
  24. """
  25. get_default_backend_cls = curry(get_backend_cls, conf.RESULT_BACKEND)
  26. """
  27. .. class:: DefaultBackend
  28. The default backend class used for storing task results and status,
  29. specified in the ``CELERY_RESULT_BACKEND`` setting.
  30. """
  31. DefaultBackend = get_default_backend_cls()
  32. """
  33. .. data:: default_backend
  34. An instance of :class:`DefaultBackend`.
  35. """
  36. default_backend = DefaultBackend()