Flask 芹菜烧瓶

Flask 芹菜烧瓶,flask,celery,python-3.4,Flask,Celery,Python 3.4,我想用芹菜做我的早餐。因为我正在工厂方法中创建实例,所以无法使用文档()中的示例 init.py from celery import Celery from flask import Flask from config import config def create_app(): app = Flask(__name__) app.debug = True app.config.from_object(config) from .main import

我想用芹菜做我的早餐。因为我正在工厂方法中创建实例,所以无法使用文档()中的示例

init.py

from celery import Celery
from flask import Flask
from config import config


def create_app():
    app = Flask(__name__)
    app.debug = True
    app.config.from_object(config)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)


    return app

def make_celery(app = None):
    app = app or create_app()
    celery = Celery('app', 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
    return celery
from app import make_celery

celery = make_celery()


@celery.task
def add(a, b):
    return a + b
from flask import render_template
from app.main import main
from ..tasks import add

@main.route('/', methods=['GET', 'POST'])
def index():
    add.delay(5, 3)
    return render_template('index.html')
任务。py

from celery import Celery
from flask import Flask
from config import config


def create_app():
    app = Flask(__name__)
    app.debug = True
    app.config.from_object(config)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)


    return app

def make_celery(app = None):
    app = app or create_app()
    celery = Celery('app', 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
    return celery
from app import make_celery

celery = make_celery()


@celery.task
def add(a, b):
    return a + b
from flask import render_template
from app.main import main
from ..tasks import add

@main.route('/', methods=['GET', 'POST'])
def index():
    add.delay(5, 3)
    return render_template('index.html')
视图.py

from celery import Celery
from flask import Flask
from config import config


def create_app():
    app = Flask(__name__)
    app.debug = True
    app.config.from_object(config)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)


    return app

def make_celery(app = None):
    app = app or create_app()
    celery = Celery('app', 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
    return celery
from app import make_celery

celery = make_celery()


@celery.task
def add(a, b):
    return a + b
from flask import render_template
from app.main import main
from ..tasks import add

@main.route('/', methods=['GET', 'POST'])
def index():
    add.delay(5, 3)
    return render_template('index.html')
我得到一个:

回溯(最近一次呼叫最后一次): 文件“…lib/python3.4/site packages/芹菜/app/utils.py”,第229行,在find_应用程序中 sym=symbol按名称(应用程序,imp=imp) 文件“…lib/python3.4/site packages/cellery/bin/base.py”,第488行,以符号形式显示 按名称返回符号(名称,imp=imp) 文件“…lib/python3.4/site packages/kombu/utils/_init__.py”,第97行,符号为 如果cls\U名称为else模块,则返回getattr(模块,cls\U名称) AttributeError:“模块”对象没有“任务”属性
-A参数应该指向要使用的芹菜实例,而不是模块

在这种情况下:

celery -A app.tasks.celery worker

您没有名为
app.py
的文件,因此
tasks.py
无法从中导入。你的意思是来自。进口自制芹菜?