__init__.py 889 B

123456789101112131415161718192021222324
  1. from celery.defaults import default_app
  2. from celery.utils import get_cls_by_name
  3. from celery.utils.functional import curry
  4. BACKEND_ALIASES = {
  5. "amqp": "celery.backends.amqp.AMQPBackend",
  6. "cache": "celery.backends.cache.CacheBackend",
  7. "redis": "celery.backends.pyredis.RedisBackend",
  8. "mongodb": "celery.backends.mongodb.MongoBackend",
  9. "tyrant": "celery.backends.tyrant.TyrantBackend",
  10. "database": "celery.backends.database.DatabaseBackend",
  11. "cassandra": "celery.backends.cassandra.CassandraBackend",
  12. }
  13. _backend_cache = {}
  14. def get_backend_cls(backend, loader=None):
  15. """Get backend class by name/alias"""
  16. loader = loader or default_app.loader
  17. if backend not in _backend_cache:
  18. aliases = dict(BACKEND_ALIASES, **loader.override_backends)
  19. _backend_cache[backend] = get_cls_by_name(backend, aliases)
  20. return _backend_cache[backend]