现在继续学习在集成的框架中如何使用celery.
在Flask中使用celery
在Flask中集成celery需要做到两点:
创建celery的实例对象的名字必须是flask应用程序app的名字,否则celery启动会失败;
celery必须能顺利加载初始化文件。
celery在flask中初始化
由于celery进程的运行和flask进程的运行是相互独立的,但是在框架中我们希望只使用一份配置文件,这样可以简化配置的工作。
from celery import Celery
from flask import Flask
app = Flask(__name__)
def make_celery(app):
celery = Celery(app.import_name)
celery.conf.update(app.config)
return celery
celery = make_celery(app)
# celery的配置文件在app的setting中;
问题:上面的做法程序在初始化的时候可以完成celery的初始化,但是当使用工厂模式创建app的时候,celery的初始化变得困难;
from celery import Celery
from flask import Flask
celery = None
def make_celery(app):
celery = Celery(app.import_name)
celery.conf.update(app.config)
return celery