Celery 3与Flask集成

4 投票
1 回答
2811 浏览
提问于 2025-04-17 20:41

我正在尝试让这个基本的例子运行起来:

http://flask.pocoo.org/docs/patterns/celery/

文章建议把这个放在一个任务模块里:

from celery import Celery

def make_celery(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
    return celery

还有这个 Flask 应用。

from flask import Flask

flask_app = Flask(__name__)
flask_app.config.update(
    CELERY_BROKER_URL='redis://localhost:6379',
    CELERY_RESULT_BACKEND='redis://localhost:6379'
)
celery = make_celery(flask_app)


@celery.task()
def add_together(a, b):
    return a + b    

但到目前为止,我还是搞不清楚这些东西该放在哪里。

有没有人能提供一个简单的 Flask-Celery 3 的工作示例呢?

谢谢,

Carl

1 个回答

-2

Flask-Celery的GitHub仓库

我引用作者的话

从CELERY 3.0开始,这个库就不再必要了,应该使用标准的CELERY API

所以,不需要再使用Flask-Celery,因为Celery本身和Flask是独立的。请使用Flask的良好编程模式。

撰写回答