我在使用python flask应用程序工厂应用程序实现celery时遇到问题
我打算通过以下应用程序初始化文件创建Celery应用程序的实例:
from celery import Celery
celery = Celery('myapp', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
被调用时,我无法使用其他蓝图中的芹菜。
def init_celery(app):
celery = Celery()
celery.conf.broker_url = app.config['CELERY_BROKER_URL']
celery.conf.result_backend = app.config['CELERY_RESULT_BACKEND']
celery.conf.update(app.config)
class ContextTask(celery.Task):
"""Make celery tasks work with Flask app context"""
def __call__(self, *args, **kwargs):
with app.app_context():
return self.run(*args, **kwargs)
celery.Task = ContextTask
return celery
create_app
时初始化芹菜:
init_celery(app)
了解在this Flask cookiecutter中如何实现芹菜>
@ API的回答是正确的...还将以下内容添加到您的芹菜配置中...这将有助于防止在代理关闭或无法访问时,芹菜引起的无休止的重试。