All Projects → ask → Flask Celery

ask / Flask Celery

Licence: bsd-3-clause
Celery integration for Flask (SINCE CELERY 3.0 THIS IS NO LONGER NEEDED)

Programming Languages

python
139335 projects - #7 most used programming language

============================== Flask <-> Celery Integration

:Version: 2.4.3

FROM CELERY 3.0 THIS LIBRARY IS NO LONGER NECESSARY, INSTEAD YOU SHOULD USE THE STANDARD CELERY API

.. _Celery: http://celeryproject.org

Using Flask with Celery

From Celery 3.0 the Flask-Celery integration package is no longer recommended and you should use the standard Celery API instead.

Please read the Celery getting started tutorial::

http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html

You can easily add Celery to your flask application like this:

myapp.py::

from celery import Celery

celery = Celery('myapp', broker='amqp://[email protected]//')

@celery.task
def add(x, y):
    return x + y

To start the worker you can then launch the celery worker command by pointing to your celery app instance::

$ celery -A myapp:celery worker -l info

See the commands help screen for more information::

$ celery help

If you want use the flask configuration as a source for the celery configuration you can do that like this::

celery = Celery('myapp')
celery.conf.add_defaults(app.config)

If you need access to the request inside your task then you can use the test context::

from flask import Flask
from celery import Celery

app = Flask('myapp')
celery = Celery('myapp')
celery.conf.add_defaults(app.config)

@celery.task
def hello():
    with app.test_request_context() as request:
        print('Hello {0!r}.format(request))
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].