Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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_
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
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
Ejemplo n.º 15
0
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