Exemple #1
0
from celery import current_app
from celery.local import LocalProxy
from celery.utils import get_cls_by_name

BACKEND_ALIASES = {
    "amqp": "celery.backends.amqp.AMQPBackend",
    "cache": "celery.backends.cache.CacheBackend",
    "redis": "celery.backends.pyredis.RedisBackend",
    "mongodb": "celery.backends.mongodb.MongoBackend",
    "tyrant": "celery.backends.tyrant.TyrantBackend",
    "database": "celery.backends.database.DatabaseBackend",
    "cassandra": "celery.backends.cassandra.CassandraBackend",
}

_backend_cache = {}


def get_backend_cls(backend, loader=None):
    """Get backend class by name/alias"""
    loader = loader or current_app.loader
    if backend not in _backend_cache:
        aliases = dict(BACKEND_ALIASES, **loader.override_backends)
        _backend_cache[backend] = get_cls_by_name(backend, aliases)
    return _backend_cache[backend]


# deprecate this.
default_backend = LocalProxy(lambda: current_app.backend)
Exemple #2
0
import os
import sys

VERSION = (2, 3, 0, "a2")

__version__ = ".".join(map(str, VERSION[0:3])) + "".join(VERSION[3:])
__author__ = "Ask Solem"
__contact__ = "*****@*****.**"
__homepage__ = "http://celeryproject.org"
__docformat__ = "restructuredtext"

if sys.version_info < (2, 5):
    raise Exception("Python 2.4 is not supported by this version. "
                    "Please use Celery versions 2.1.x or earlier.")


def Celery(*args, **kwargs):
    from celery.app import App
    return App(*args, **kwargs)


if not os.environ.get("CELERY_NO_EVAL", False):
    from celery.local import LocalProxy

    def _get_current_app():
        from celery.app import current_app
        return current_app()

    current_app = LocalProxy(_get_current_app)