def initialize_celery(): redis_url, broker_options = setup_redis_url() app = Celery('tasks', broker=redis_url, backend=redis_url) app.conf.update( CELERY_TASK_SERIALIZER='json', CELERY_RESULT_SERIALIZER='json', CELERY_ACCEPT_CONTENT=['json'], BROKER_TRANSPORT_OPTIONS=broker_options, CELERY_SENTINEL_BACKEND_SETTINGS=broker_options, ) ssl_plugins.register_plugins() return app
redis_host = os.environ.get('REDIS_HOST', 'localhost') redis_port = os.environ.get('REDIS_PORT', '6379') redis_password = os.environ.get('REDIS_PASSWORD', '') auth_prefix = '' if redis_password: auth_prefix = ':{}@'.format(redis_password) redis_broker = "redis://{}{}:{}/0".format(auth_prefix, redis_host, redis_port) app = Celery('tasks', broker=redis_broker, backend=redis_broker) app.conf.update( CELERY_TASK_SERIALIZER='json', CELERY_RESULT_SERIALIZER='json', CELERY_ACCEPT_CONTENT=['json'], ) ssl_plugins.register_plugins() class NotReadyError(Exception): pass class TaskNotFoundError(Exception): pass class TaskManager(object): def __init__(self, config=None): self.storage = storage.MongoDBStorage(config)