|
@@ -105,149 +105,153 @@ _DEPRECATION_FMT = """
|
|
|
%s is deprecated in favor of %s and is scheduled for removal in celery v1.4.
|
|
|
""".strip()
|
|
|
|
|
|
-def _get(name, default=None, compat=None):
|
|
|
- compat = compat or []
|
|
|
- if default is None:
|
|
|
- default = _DEFAULTS.get(name)
|
|
|
- compat = [name] + compat
|
|
|
- for i, alias in enumerate(compat):
|
|
|
- try:
|
|
|
- value = getattr(settings, alias)
|
|
|
- i > 0 and warnings.warn(DeprecationWarning(_DEPRECATION_FMT % (
|
|
|
- alias, name)))
|
|
|
- return value
|
|
|
- except AttributeError:
|
|
|
- pass
|
|
|
- return default
|
|
|
-
|
|
|
-# <--- Task <- -- --- - ----- -- #
|
|
|
-ALWAYS_EAGER = _get("CELERY_ALWAYS_EAGER")
|
|
|
-EAGER_PROPAGATES_EXCEPTIONS = _get("CELERY_EAGER_PROPAGATES_EXCEPTIONS")
|
|
|
-RESULT_BACKEND = _get("CELERY_RESULT_BACKEND", compat=["CELERY_BACKEND"])
|
|
|
-CELERY_BACKEND = RESULT_BACKEND # FIXME Remove in 1.4
|
|
|
-CACHE_BACKEND = _get("CELERY_CACHE_BACKEND") or _get("CACHE_BACKEND")
|
|
|
-CACHE_BACKEND_OPTIONS = _get("CELERY_CACHE_BACKEND_OPTIONS") or {}
|
|
|
-TASK_SERIALIZER = _get("CELERY_TASK_SERIALIZER")
|
|
|
-TASK_RESULT_EXPIRES = _get("CELERY_TASK_RESULT_EXPIRES")
|
|
|
-IGNORE_RESULT = _get("CELERY_IGNORE_RESULT")
|
|
|
-TRACK_STARTED = _get("CELERY_TRACK_STARTED")
|
|
|
-ACKS_LATE = _get("CELERY_ACKS_LATE")
|
|
|
-# Make sure TASK_RESULT_EXPIRES is a timedelta.
|
|
|
-if isinstance(TASK_RESULT_EXPIRES, int):
|
|
|
- TASK_RESULT_EXPIRES = timedelta(seconds=TASK_RESULT_EXPIRES)
|
|
|
-
|
|
|
-# <--- SQLAlchemy <- -- --- - ----- -- #
|
|
|
-RESULT_DBURI = _get("CELERY_RESULT_DBURI")
|
|
|
-RESULT_ENGINE_OPTIONS = _get("CELERY_RESULT_ENGINE_OPTIONS")
|
|
|
-
|
|
|
-
|
|
|
-# <--- Client <- -- --- - ----- -- #
|
|
|
-
|
|
|
-MAX_CACHED_RESULTS = _get("CELERY_MAX_CACHED_RESULTS")
|
|
|
-
|
|
|
-# <--- Worker <- -- --- - ----- -- #
|
|
|
-
|
|
|
-SEND_EVENTS = _get("CELERY_SEND_EVENTS")
|
|
|
-DEFAULT_RATE_LIMIT = _get("CELERY_DEFAULT_RATE_LIMIT")
|
|
|
-DISABLE_RATE_LIMITS = _get("CELERY_DISABLE_RATE_LIMITS")
|
|
|
-CELERYD_TASK_TIME_LIMIT = _get("CELERYD_TASK_TIME_LIMIT")
|
|
|
-CELERYD_TASK_SOFT_TIME_LIMIT = _get("CELERYD_TASK_SOFT_TIME_LIMIT")
|
|
|
-CELERYD_MAX_TASKS_PER_CHILD = _get("CELERYD_MAX_TASKS_PER_CHILD")
|
|
|
-STORE_ERRORS_EVEN_IF_IGNORED = _get("CELERY_STORE_ERRORS_EVEN_IF_IGNORED")
|
|
|
-CELERY_SEND_TASK_ERROR_EMAILS = _get("CELERY_SEND_TASK_ERROR_EMAILS", False,
|
|
|
- compat=["SEND_CELERY_TASK_ERROR_EMAILS"])
|
|
|
-CELERY_TASK_ERROR_WHITELIST = _get("CELERY_TASK_ERROR_WHITELIST")
|
|
|
-CELERYD_LOG_FORMAT = _get("CELERYD_LOG_FORMAT",
|
|
|
+def prepare(m, source=settings, defaults=_DEFAULTS):
|
|
|
+
|
|
|
+ def _get(name, default=None, compat=None):
|
|
|
+ compat = compat or []
|
|
|
+ if default is None:
|
|
|
+ default = defaults.get(name)
|
|
|
+ compat = [name] + compat
|
|
|
+ for i, alias in enumerate(compat):
|
|
|
+ try:
|
|
|
+ value = getattr(source, alias)
|
|
|
+ i > 0 and warnings.warn(
|
|
|
+ DeprecationWarning(_DEPRECATION_FMT % (alias, name)))
|
|
|
+ return value
|
|
|
+ except AttributeError:
|
|
|
+ pass
|
|
|
+ return default
|
|
|
+
|
|
|
+ # <--- Task <- -- --- - ----- -- #
|
|
|
+ m.ALWAYS_EAGER = _get("CELERY_ALWAYS_EAGER")
|
|
|
+ m.EAGER_PROPAGATES_EXCEPTIONS = _get("CELERY_EAGER_PROPAGATES_EXCEPTIONS")
|
|
|
+ m.RESULT_BACKEND = _get("CELERY_RESULT_BACKEND", compat=["CELERY_BACKEND"])
|
|
|
+ m.CELERY_BACKEND = RESULT_BACKEND # FIXME Remove in 1.4
|
|
|
+ m.CACHE_BACKEND = _get("CELERY_CACHE_BACKEND") or _get("CACHE_BACKEND")
|
|
|
+ m.CACHE_BACKEND_OPTIONS = _get("CELERY_CACHE_BACKEND_OPTIONS") or {}
|
|
|
+ m.TASK_SERIALIZER = _get("CELERY_TASK_SERIALIZER")
|
|
|
+ m.TASK_RESULT_EXPIRES = _get("CELERY_TASK_RESULT_EXPIRES")
|
|
|
+ m.IGNORE_RESULT = _get("CELERY_IGNORE_RESULT")
|
|
|
+ m.TRACK_STARTED = _get("CELERY_TRACK_STARTED")
|
|
|
+ m.ACKS_LATE = _get("CELERY_ACKS_LATE")
|
|
|
+
|
|
|
+ # Make sure TASK_RESULT_EXPIRES is a timedelta.
|
|
|
+ if isinstance(m.TASK_RESULT_EXPIRES, int):
|
|
|
+ m.TASK_RESULT_EXPIRES = timedelta(seconds=m.TASK_RESULT_EXPIRES)
|
|
|
+
|
|
|
+ # <--- SQLAlchemy <- -- --- - ----- -- #
|
|
|
+ m.RESULT_DBURI = _get("CELERY_RESULT_DBURI")
|
|
|
+ m.RESULT_ENGINE_OPTIONS = _get("CELERY_RESULT_ENGINE_OPTIONS")
|
|
|
+
|
|
|
+ # <--- Client <- -- --- - ----- -- #
|
|
|
+
|
|
|
+ m.MAX_CACHED_RESULTS = _get("CELERY_MAX_CACHED_RESULTS")
|
|
|
+
|
|
|
+ # <--- Worker <- -- --- - ----- -- #
|
|
|
+
|
|
|
+ m.SEND_EVENTS = _get("CELERY_SEND_EVENTS")
|
|
|
+ m.DEFAULT_RATE_LIMIT = _get("CELERY_DEFAULT_RATE_LIMIT")
|
|
|
+ m.DISABLE_RATE_LIMITS = _get("CELERY_DISABLE_RATE_LIMITS")
|
|
|
+ m.CELERYD_TASK_TIME_LIMIT = _get("CELERYD_TASK_TIME_LIMIT")
|
|
|
+ m.CELERYD_TASK_SOFT_TIME_LIMIT = _get("CELERYD_TASK_SOFT_TIME_LIMIT")
|
|
|
+ m.CELERYD_MAX_TASKS_PER_CHILD = _get("CELERYD_MAX_TASKS_PER_CHILD")
|
|
|
+ m.STORE_ERRORS_EVEN_IF_IGNORED = _get("CELERY_STORE_ERRORS_EVEN_IF_IGNORED")
|
|
|
+ m.CELERY_SEND_TASK_ERROR_EMAILS = _get("CELERY_SEND_TASK_ERROR_EMAILS",
|
|
|
+ False,
|
|
|
+ compat=["SEND_CELERY_TASK_ERROR_EMAILS"])
|
|
|
+ m.CELERY_TASK_ERROR_WHITELIST = _get("CELERY_TASK_ERROR_WHITELIST")
|
|
|
+ m.CELERYD_LOG_FORMAT = _get("CELERYD_LOG_FORMAT",
|
|
|
compat=["CELERYD_DAEMON_LOG_FORMAT"])
|
|
|
-CELERYD_TASK_LOG_FORMAT = _get("CELERYD_TASK_LOG_FORMAT")
|
|
|
-CELERYD_LOG_FILE = _get("CELERYD_LOG_FILE")
|
|
|
-CELERYD_LOG_COLOR = _get("CELERYD_LOG_COLOR",
|
|
|
+ m.CELERYD_TASK_LOG_FORMAT = _get("CELERYD_TASK_LOG_FORMAT")
|
|
|
+ m.CELERYD_LOG_FILE = _get("CELERYD_LOG_FILE")
|
|
|
+ m.CELERYD_LOG_COLOR = _get("CELERYD_LOG_COLOR",
|
|
|
CELERYD_LOG_FILE is None and isatty(sys.stderr))
|
|
|
-CELERYD_LOG_LEVEL = _get("CELERYD_LOG_LEVEL",
|
|
|
+ m.CELERYD_LOG_LEVEL = _get("CELERYD_LOG_LEVEL",
|
|
|
compat=["CELERYD_DAEMON_LOG_LEVEL"])
|
|
|
-CELERYD_LOG_LEVEL = LOG_LEVELS[CELERYD_LOG_LEVEL.upper()]
|
|
|
-CELERYD_STATE_DB = _get("CELERYD_STATE_DB")
|
|
|
-CELERYD_CONCURRENCY = _get("CELERYD_CONCURRENCY")
|
|
|
-CELERYD_PREFETCH_MULTIPLIER = _get("CELERYD_PREFETCH_MULTIPLIER")
|
|
|
-CELERYD_POOL_PUTLOCKS = _get("CELERYD_POOL_PUTLOCKS")
|
|
|
-
|
|
|
-CELERYD_POOL = _get("CELERYD_POOL")
|
|
|
-CELERYD_LISTENER = _get("CELERYD_LISTENER")
|
|
|
-CELERYD_MEDIATOR = _get("CELERYD_MEDIATOR")
|
|
|
-CELERYD_ETA_SCHEDULER = _get("CELERYD_ETA_SCHEDULER")
|
|
|
-CELERYD_ETA_SCHEDULER_PRECISION = _get("CELERYD_ETA_SCHEDULER_PRECISION")
|
|
|
-
|
|
|
-# :--- Email settings <- -- --- - ----- -- #
|
|
|
-ADMINS = _get("ADMINS")
|
|
|
-SERVER_EMAIL = _get("SERVER_EMAIL")
|
|
|
-EMAIL_HOST = _get("EMAIL_HOST")
|
|
|
-EMAIL_HOST_USER = _get("EMAIL_HOST_USER")
|
|
|
-EMAIL_HOST_PASSWORD = _get("EMAIL_HOST_PASSWORD")
|
|
|
-EMAIL_PORT = _get("EMAIL_PORT")
|
|
|
-
|
|
|
-
|
|
|
-# :--- Broker connections <- -- --- - ----- -- #
|
|
|
-BROKER_HOST = _get("BROKER_HOST")
|
|
|
-BROKER_PORT = _get("BROKER_PORT")
|
|
|
-BROKER_USER = _get("BROKER_USER")
|
|
|
-BROKER_PASSWORD = _get("BROKER_PASSWORD")
|
|
|
-BROKER_VHOST = _get("BROKER_VHOST")
|
|
|
-BROKER_USE_SSL = _get("BROKER_USE_SSL")
|
|
|
-BROKER_INSIST = _get("BROKER_INSIST")
|
|
|
-BROKER_CONNECTION_TIMEOUT = _get("BROKER_CONNECTION_TIMEOUT",
|
|
|
+ if not isinstance(m.CELERYD_LOG_LEVEL, int):
|
|
|
+ m.CELERYD_LOG_LEVEL = LOG_LEVELS[m.CELERYD_LOG_LEVEL.upper()]
|
|
|
+ m.CELERYD_STATE_DB = _get("CELERYD_STATE_DB")
|
|
|
+ m.CELERYD_CONCURRENCY = _get("CELERYD_CONCURRENCY")
|
|
|
+ m.CELERYD_PREFETCH_MULTIPLIER = _get("CELERYD_PREFETCH_MULTIPLIER")
|
|
|
+ m.CELERYD_POOL_PUTLOCKS = _get("CELERYD_POOL_PUTLOCKS")
|
|
|
+
|
|
|
+ m.CELERYD_POOL = _get("CELERYD_POOL")
|
|
|
+ m.CELERYD_LISTENER = _get("CELERYD_LISTENER")
|
|
|
+ m.CELERYD_MEDIATOR = _get("CELERYD_MEDIATOR")
|
|
|
+ m.CELERYD_ETA_SCHEDULER = _get("CELERYD_ETA_SCHEDULER")
|
|
|
+ m.CELERYD_ETA_SCHEDULER_PRECISION = _get("CELERYD_ETA_SCHEDULER_PRECISION")
|
|
|
+
|
|
|
+ # :--- Email settings <- -- --- - ----- -- #
|
|
|
+ m.ADMINS = _get("ADMINS")
|
|
|
+ m.SERVER_EMAIL = _get("SERVER_EMAIL")
|
|
|
+ m.EMAIL_HOST = _get("EMAIL_HOST")
|
|
|
+ m.EMAIL_HOST_USER = _get("EMAIL_HOST_USER")
|
|
|
+ m.EMAIL_HOST_PASSWORD = _get("EMAIL_HOST_PASSWORD")
|
|
|
+ m.EMAIL_PORT = _get("EMAIL_PORT")
|
|
|
+
|
|
|
+ # :--- Broker connections <- -- --- - ----- -- #
|
|
|
+ m.BROKER_HOST = _get("BROKER_HOST")
|
|
|
+ m.BROKER_PORT = _get("BROKER_PORT")
|
|
|
+ m.BROKER_USER = _get("BROKER_USER")
|
|
|
+ m.BROKER_PASSWORD = _get("BROKER_PASSWORD")
|
|
|
+ m.BROKER_VHOST = _get("BROKER_VHOST")
|
|
|
+ m.BROKER_USE_SSL = _get("BROKER_USE_SSL")
|
|
|
+ m.BROKER_INSIST = _get("BROKER_INSIST")
|
|
|
+ m.BROKER_CONNECTION_TIMEOUT = _get("BROKER_CONNECTION_TIMEOUT",
|
|
|
compat=["CELERY_BROKER_CONNECTION_TIMEOUT"])
|
|
|
-BROKER_CONNECTION_RETRY = _get("BROKER_CONNECTION_RETRY",
|
|
|
+ m.BROKER_CONNECTION_RETRY = _get("BROKER_CONNECTION_RETRY",
|
|
|
compat=["CELERY_BROKER_CONNECTION_RETRY"])
|
|
|
-BROKER_CONNECTION_MAX_RETRIES = _get("BROKER_CONNECTION_MAX_RETRIES",
|
|
|
+ m.BROKER_CONNECTION_MAX_RETRIES = _get("BROKER_CONNECTION_MAX_RETRIES",
|
|
|
compat=["CELERY_BROKER_CONNECTION_MAX_RETRIES"])
|
|
|
-BROKER_BACKEND = _get("BROKER_TRANSPORT") or \
|
|
|
- _get("BROKER_BACKEND") or \
|
|
|
- _get("CARROT_BACKEND")
|
|
|
-
|
|
|
-# <--- Message routing <- -- --- - ----- -- #
|
|
|
-DEFAULT_QUEUE = _get("CELERY_DEFAULT_QUEUE")
|
|
|
-DEFAULT_ROUTING_KEY = _get("CELERY_DEFAULT_ROUTING_KEY")
|
|
|
-DEFAULT_EXCHANGE = _get("CELERY_DEFAULT_EXCHANGE")
|
|
|
-DEFAULT_EXCHANGE_TYPE = _get("CELERY_DEFAULT_EXCHANGE_TYPE")
|
|
|
-DEFAULT_DELIVERY_MODE = _get("CELERY_DEFAULT_DELIVERY_MODE")
|
|
|
-QUEUES = _get("CELERY_QUEUES") or {DEFAULT_QUEUE: {
|
|
|
+ m.BROKER_BACKEND = _get("BROKER_TRANSPORT") or \
|
|
|
+ _get("BROKER_BACKEND") or \
|
|
|
+ _get("CARROT_BACKEND")
|
|
|
+
|
|
|
+ # <--- Message routing <- -- --- - ----- -- #
|
|
|
+ m.DEFAULT_QUEUE = _get("CELERY_DEFAULT_QUEUE")
|
|
|
+ m.DEFAULT_ROUTING_KEY = _get("CELERY_DEFAULT_ROUTING_KEY")
|
|
|
+ m.DEFAULT_EXCHANGE = _get("CELERY_DEFAULT_EXCHANGE")
|
|
|
+ m.DEFAULT_EXCHANGE_TYPE = _get("CELERY_DEFAULT_EXCHANGE_TYPE")
|
|
|
+ m.DEFAULT_DELIVERY_MODE = _get("CELERY_DEFAULT_DELIVERY_MODE")
|
|
|
+ m.QUEUES = _get("CELERY_QUEUES") or {DEFAULT_QUEUE: {
|
|
|
"exchange": DEFAULT_EXCHANGE,
|
|
|
"exchange_type": DEFAULT_EXCHANGE_TYPE,
|
|
|
"binding_key": DEFAULT_ROUTING_KEY}}
|
|
|
-CREATE_MISSING_QUEUES = _get("CELERY_CREATE_MISSING_QUEUES")
|
|
|
-ROUTES = routes.prepare(_get("CELERY_ROUTES") or [])
|
|
|
-# :--- Broadcast queue settings <- -- --- - ----- -- #
|
|
|
+ m.CREATE_MISSING_QUEUES = _get("CELERY_CREATE_MISSING_QUEUES")
|
|
|
+ m.ROUTES = routes.prepare(_get("CELERY_ROUTES") or [])
|
|
|
+ # :--- Broadcast queue settings <- -- --- - ----- -- #
|
|
|
|
|
|
-BROADCAST_QUEUE = _get("CELERY_BROADCAST_QUEUE")
|
|
|
-BROADCAST_EXCHANGE = _get("CELERY_BROADCAST_EXCHANGE")
|
|
|
-BROADCAST_EXCHANGE_TYPE = _get("CELERY_BROADCAST_EXCHANGE_TYPE")
|
|
|
+ m.BROADCAST_QUEUE = _get("CELERY_BROADCAST_QUEUE")
|
|
|
+ m.BROADCAST_EXCHANGE = _get("CELERY_BROADCAST_EXCHANGE")
|
|
|
+ m.BROADCAST_EXCHANGE_TYPE = _get("CELERY_BROADCAST_EXCHANGE_TYPE")
|
|
|
|
|
|
# :--- Event queue settings <- -- --- - ----- -- #
|
|
|
|
|
|
-EVENT_QUEUE = _get("CELERY_EVENT_QUEUE")
|
|
|
-EVENT_EXCHANGE = _get("CELERY_EVENT_EXCHANGE")
|
|
|
-EVENT_EXCHANGE_TYPE = _get("CELERY_EVENT_EXCHANGE_TYPE")
|
|
|
-EVENT_ROUTING_KEY = _get("CELERY_EVENT_ROUTING_KEY")
|
|
|
-EVENT_SERIALIZER = _get("CELERY_EVENT_SERIALIZER")
|
|
|
+ m.EVENT_QUEUE = _get("CELERY_EVENT_QUEUE")
|
|
|
+ m.EVENT_EXCHANGE = _get("CELERY_EVENT_EXCHANGE")
|
|
|
+ m.EVENT_EXCHANGE_TYPE = _get("CELERY_EVENT_EXCHANGE_TYPE")
|
|
|
+ m.EVENT_ROUTING_KEY = _get("CELERY_EVENT_ROUTING_KEY")
|
|
|
+ m.EVENT_SERIALIZER = _get("CELERY_EVENT_SERIALIZER")
|
|
|
|
|
|
# :--- AMQP Backend settings <- -- --- - ----- -- #
|
|
|
|
|
|
-RESULT_EXCHANGE = _get("CELERY_RESULT_EXCHANGE")
|
|
|
-RESULT_EXCHANGE_TYPE = _get("CELERY_RESULT_EXCHANGE_TYPE")
|
|
|
-RESULT_SERIALIZER = _get("CELERY_RESULT_SERIALIZER")
|
|
|
-RESULT_PERSISTENT = _get("CELERY_RESULT_PERSISTENT")
|
|
|
+ m.RESULT_EXCHANGE = _get("CELERY_RESULT_EXCHANGE")
|
|
|
+ m.RESULT_EXCHANGE_TYPE = _get("CELERY_RESULT_EXCHANGE_TYPE")
|
|
|
+ m.RESULT_SERIALIZER = _get("CELERY_RESULT_SERIALIZER")
|
|
|
+ m.RESULT_PERSISTENT = _get("CELERY_RESULT_PERSISTENT")
|
|
|
|
|
|
# :--- Celery Beat <- -- --- - ----- -- #
|
|
|
-CELERYBEAT_LOG_LEVEL = _get("CELERYBEAT_LOG_LEVEL")
|
|
|
-CELERYBEAT_LOG_FILE = _get("CELERYBEAT_LOG_FILE")
|
|
|
-CELERYBEAT_SCHEDULE = _get("CELERYBEAT_SCHEDULE")
|
|
|
-CELERYBEAT_SCHEDULE_FILENAME = _get("CELERYBEAT_SCHEDULE_FILENAME")
|
|
|
-CELERYBEAT_MAX_LOOP_INTERVAL = _get("CELERYBEAT_MAX_LOOP_INTERVAL")
|
|
|
+ m.CELERYBEAT_LOG_LEVEL = _get("CELERYBEAT_LOG_LEVEL")
|
|
|
+ m.CELERYBEAT_LOG_FILE = _get("CELERYBEAT_LOG_FILE")
|
|
|
+ m.CELERYBEAT_SCHEDULE = _get("CELERYBEAT_SCHEDULE")
|
|
|
+ m.CELERYBEAT_SCHEDULE_FILENAME = _get("CELERYBEAT_SCHEDULE_FILENAME")
|
|
|
+ m.CELERYBEAT_MAX_LOOP_INTERVAL = _get("CELERYBEAT_MAX_LOOP_INTERVAL")
|
|
|
|
|
|
# :--- Celery Monitor <- -- --- - ----- -- #
|
|
|
-CELERYMON_LOG_LEVEL = _get("CELERYMON_LOG_LEVEL")
|
|
|
-CELERYMON_LOG_FILE = _get("CELERYMON_LOG_FILE")
|
|
|
+ m.CELERYMON_LOG_LEVEL = _get("CELERYMON_LOG_LEVEL")
|
|
|
+ m.CELERYMON_LOG_FILE = _get("CELERYMON_LOG_FILE")
|
|
|
|
|
|
+prepare(sys.modules[__name__])
|
|
|
|
|
|
def _init_queues(queues):
|
|
|
"""Convert configuration mapping to a table of queues digestible
|