def create_celery_app(app=None): """Create celery instance with flask app context. Source: https://gist.github.com/anonymous/fa47834db2f4f3b8b257 Source: https://stackoverflow.com/questions/25360136/flask-with-create-app-sqlalchemy-and-celery """ app = app or create_naive_app() celery = Celery( __name__, backend='redis://localhost:6379', broker='redis://localhost:6379', include=[ 'flask_celery_job_status.blueprints.naive_task_status.tasks', 'flask_celery_job_status.blueprints.factory_task_status.tasks', 'flask_celery_job_status.blueprints.job_status.tasks' ]) 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 celery.app = app return celery
def make_celery(app): celery_ = Celery('celery_app') celery_.config_from_object('config') TaskBase = celery_.Task celery_.app = app class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): with app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery_.Task = ContextTask return celery_
def make_celery(app): app = app celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL']) 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 celery.app = app return celery
def create_celery_app(app=None): app = app or create_app() celery = Celery(__name__, broker=app.config['CELERY_BROKER_URL']) 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 celery.app = app return celery
def make_celery(app): celery = Celery( app.import_name, backend=CELERY_RESULT_BACKEND, broker=CELERY_BROKER_URL ) celery.conf.update(app.config) class ContextTask(celery.Task): def __call__(self, *args, **kwargs): with app.app_context(): return self.run(*args, **kwargs) celery.Task = ContextTask celery.app = app return celery
def create_celery_app(app=None): app = app or create_app() celery = Celery(__name__, broker=app.config['CELERY_BROKER_URL']) 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 celery.app = app return celery
def create_celery_app(app=None): celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL']) 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 # very important line for app context celery.app = app return celery
def make_celery(app=None): app = app or make_app() celery = Celery(__name__, broker=app.config.get("CELERY_BROKER")) 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 celery.app = app return celery
def make_celery(app): celery = Celery(app.import_name, broker=app.config["CELERY_BROKER_URL"], backend=app.config["CELERY_RESULT_BACKEND"]) celery.conf.update(app.config) TaskBase = celery.Task # To have an access to app celery.app = app class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): with app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery.Task = ContextTask return celery
def create_celery_app(app=None): app = app or create_app() celery = Celery() celery.config_from_object('celeryconfig') 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 celery.app = app return celery
def create_celery(app=None): app = app or create_app(ProductionConfig) celery = Celery(app.import_name, backend=app.config['CELERY_RESULT_BACKEND'], broker=app.config['CELERY_BROKER_URL']) 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 celery.app = app return celery
def make_celery(flask_app=None, config_name='prod'): from . import create_app flask_app = flask_app or create_app(config_name) c = Celery(flask_app.import_name) c.app = flask_app logger.info('celery {} flask app {}'.format(c, c.app)) c.config_from_object('celeryconf') TaskBase = c.Task class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): logger.error('ContextTask {}'.format(flask_app)) with flask_app.app_context(): logger.error('ContextTask app context {}'.format(flask_app)) return TaskBase.__call__(self, *args, **kwargs) c.Task = ContextTask return c
def create_celery_app(app=None): app = app or create_app() if app.config['CELERY_DISABLED']: app.logger.error( f"Celery setting was disable, status: {app.config['CELERY_DISABLED']}") return Celery(__name__) celery = Celery(__name__, broker=app.config['CELERY_BROKER_URL'], backend=app.config['CELERY_RESULT_BACKEND'], include=['breakcontent.tasks']) 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 celery.app = app return celery
def create_celery_app(): """Create a Celery app instance.""" app = create_app() celery = Celery(app.import_name, broker=app.config[u'CELERY_BROKER_URL']) celery.conf.update(app.config) TaskBase = celery.Task # pylint: disable=no-init class ContextTask(TaskBase): """Add Flask context to the Celery tasks created.""" abstract = True def __call__(self, *args, **kwargs): """Return Task within a Flask app context. Returns: A Task (instance of Celery.celery.Task) """ with app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery.Task = ContextTask celery.app = app return celery