Celery初级

2019-03-15  本文已影响0人  ZplD

什么是Celery

Celery是管理分布式队列工具,可用于进行任务队列的使用和管理

Celery的结构

[图片上传失败...(image-e0868f-1552622464942)]

Celery的安装

apt-get install redis-server
pip install redis
pip install celery

测试Demo

#tasks.py
from celery import Celery
app = Celery('tasks',  backend='redis://localhost:6379/0', broker='redis://localhost:6379/0') #配置好celery的backend和broker
@app.task  #普通函数装饰为 celery task
def add(x, y):
    return x + y

终端运行celery -A tasks worker --loglevel=inf

#trigger.py
from tasks import add
result = add.delay(4, 4) #不要直接 add(4, 4),这里需要用 celery 提供的接口 delay 进行调用
while not result.ready():
    time.sleep(1)

print 'task done: {0}'.format(result.get())

运行该文件

错误问题处理

image.png

错误原因:python3.6后引进async关键词与celery下的一个模块名相同
解决方案:将所有有引用该模块的地方包括celery的async模块的名字都改为另外一个名字如async_2

image.png

错误原因:任务没被加入到队列中
解决方案:在@app.task()添加属性name='Demo.tasks.add'-》@app.task(name='Demo.tasks.add')

image.png

错误原因:网上说的错误原因是可能是windows10下运行celery所以报的错,但我的是windos7错误原因占时不明
解决方案:

上一篇 下一篇

猜你喜欢

热点阅读