在flask应用中使用celery任务队列,celery队列无法正常启动

最近在写一个flask应用,想使用celery做任务队列,就去flask官网上找了样例程序,然后复制到本机上执行了一下,结果celery没有正常启动.
只有一个源文件test.py,rabbitmq已配置并正常启动.
代码如下:
fromflaskimportFlask
fromceleryimportCelery
defmake_celery(app):
celery=Celery(app.import_name,broker=app.config['CELERY_BROKER_URL'],backend=app.config['CELERY_RESULT_BACKEND'])
celery.conf.update(app.config)
TaskBase=celery.Task
classContextTask(TaskBase):
abstract=True
def__call__(self,*args,**kwargs):
withapp.app_context():
returnTaskBase.__call__(self,*args,**kwargs)
celery.Task=ContextTask
returncelery
app=Flask(__name__)
app.config.update(
CELERY_BROKER_URL='amqp://guest@localhost//',
CELERY_RESULT_BACKEND='amqp://guest@localhost//'
)
celery=make_celery(app)
@celery.task()
defadd_together(a,b):
returna+b
result=add_together.delay(23,42)
result.wait()
差不多就是样例代码直接拷贝下来用了.
然后我在当前目录下执行celery-Atestworker--loglevel=info和celery-Atest.celeryworker--loglevel=info之后阻塞,同时没有任何提示.
我另外打开一个终端,在这个目录下执行pythontest.py之后发生阻塞.用pdb调试发现阻塞在最后一行result.wait().
请问我的配置过程出现什么问题了?
守着一只汪
浏览 983回答 2
2回答

吃鸡游戏

最近刚好也在看flask和celery,不过用的是redis。先启动redis然后启动celeryceleryworker-Atest.celery--loglevel=info再启动flask。你问题里没有描述实际报错,也不好回答你了。可以参考下链接描述
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript