# -*- coding: utf-8 -*- from __future__ import absolute_import, print_function, unicode_literals from celery import Celery from celery_redis_sentinel import register # has to be called before creating celery app register() app = Celery('tasks') app.config_from_object('test_tasks.celeryconfig') @app.task def add(a, b): return a + b
# TODO: deprecated (compatibility with previous settings) DATADOG["api_key"] = config("DATADOG_API", default=None) # Celery Broker # For redis sentinel use the `redis-sentinel` transport CELERY_BROKER_TRANSPORT = config("CELERY_BROKER_TRANSPORT", default="redis") CELERY_BROKER_USER = config("CELERY_BROKER_USER", default="") CELERY_BROKER_PASSWORD = config("CELERY_BROKER_PASSWORD", default="") CELERY_BROKER_HOST = config("CELERY_BROKER_HOST", default="redis") CELERY_BROKER_PORT = config("CELERY_BROKER_PORT", default=6379, formatter=int) CELERY_BROKER_VHOST = config("CELERY_BROKER_VHOST", default=0, formatter=int) if CELERY_BROKER_TRANSPORT == "redis-sentinel": # register redis sentinel schema in celery register() BROKER_URL = "{transport}://{user}:{password}@{host}:{port}/{vhost}".format( transport=CELERY_BROKER_TRANSPORT, user=CELERY_BROKER_USER, password=CELERY_BROKER_PASSWORD, host=CELERY_BROKER_HOST, port=CELERY_BROKER_PORT, vhost=CELERY_BROKER_VHOST, ) BROKER_USE_SSL = config("CELERY_BROKER_USE_SSL", default=False, formatter=bool) # To use redis-sentinel, refer to the documentation here # https://celery-redis-sentinel.readthedocs.io/en/latest/ BROKER_TRANSPORT_OPTIONS = config("BROKER_TRANSPORT_OPTIONS", default={}, formatter=json.loads)