Flask 饲养错误:当我使用装有芹菜的烧瓶时未登记
说明 嗨,我在学芹菜,我读了一篇博客。>> 所以我写了一个小程序来运行芹菜烧瓶 代码 app.\uuuu init\uuuuuu.pyFlask 饲养错误:当我使用装有芹菜的烧瓶时未登记,flask,celery,Flask,Celery,说明 嗨,我在学芹菜,我读了一篇博客。>> 所以我写了一个小程序来运行芹菜烧瓶 代码 app.\uuuu init\uuuuuu.py from flask import Flask from celery import Celery celery = Celery(__name__, broker='amqp://127.0.0.1:5672/') def create_app(): app = Flask(__name__) @celery.task def
from flask import Flask
from celery import Celery
celery = Celery(__name__, broker='amqp://127.0.0.1:5672/')
def create_app():
app = Flask(__name__)
@celery.task
def add(x, y):
print x+y
@app.route('/')
def index():
add.delay(1, 3)
return 'Hello World!'
return app
manage.py
from app import create_app
app = create_app()
if __name__ == '__main__':
app.run()
芹菜1.py
from app import celery, create_app()
f_app = create_app()
f_app.app_context().push()
芹菜2.py
from app import celery, create_app
@celery.task
def foo():
print 'Balabala...'
f_app = create_app()
f_app.app_context().push()
问题
当我运行Flask服务器和芹菜时,使用:
celery -A celery_worker_1 worker -l
芹菜引发了未注册的错误:
Traceback (most recent call last): File "D:\Python27\lib\site-packages\billiard\pool.py", line 363, in workloop
result = (True, prepare_result(fun(*args, **kwargs))) File "D:\Python27\lib\site-packages\celery\app\trace.py", line 349, in
_fast_trace_task
return _tasks[task].__trace__(uuid, args, kwargs, request)[0] File "D:\Python27\lib\site-packages\celery\app\registry.py", line 26, in __missing__
raise self.NotRegistered(key) NotRegistered: 'app.add'
但不是使用芹菜,而是:
celery -A celery_worker_2 worker -l info
任务将正确运行:
[2015-11-28 15:45:56,299: INFO/MainProcess] Received task: app.add[cbe5e1d6-c5df-4141-9db1-e6313517c202]
[2015-11-28 15:45:56,302: WARNING/Worker-1] 4
[2015-11-28 15:45:56,371: INFO/MainProcess] Task app.add[cbe5e1d6-c5df-4141-9db1-e6313517c202] succeeded in 0.0699999332428s: None
为什么芹菜不能用芹菜工人1的代码正确运行
附言:我的英语不好,如果你不懂,你可以向我指出,我想再描述一下。谢谢
不确定,但是为什么在
芹菜\u worker\u 1.py
的第一行有创建\u appp()
。