def CreateCelery(app = None):
app = app or CreateApp()
if not NodeDefender.config.celery.enabled():
NodeDefender.logger.info("Concurrency disabled")
return False
try:
celery = Celery(app.name, broker=app.config['CELERY_BROKER_URI'],
backend=app.config['CELERY_BACKEND_URI'])
except KeyError:
celery = Celery(app.name)
NodeDefender.logger.info("Concurreny configuration error")
return False
celery.conf.update(app.config)
TaskBase = celery.Task
class ContextTask(TaskBase):
abstract = True
def __call__(self, *args, **kwargs):
with app.app_context():
return TaskBase.__call__(self, *args, **kwargs)
celery.Task = ContextTask
NodeDefender.logger.info("Concurrency successfully enabled")
return celery
评论列表
文章目录