celery+rabbitMQ进行异步调用操作

来源:互联网 发布:网络打鱼赌钱游戏 编辑:程序博客网 时间:2024/06/18 17:35

环境说明:

Celery 3.1.23

RabbitMQ 3.6.2

一、安装rabbitmq
安装步骤请参考文档 rabbitmq 安装
二、安装celery
$pip install celery
三、测试
1、构建调用独立模块 task.py
fromceleryimport Celery
app= Celery('tasks', backend='amqp', broker='amqp://')
@app.task
defadd(x, y):
return x + y
2、允许root启动celery(root用户,没有做此步骤的话,启动celery会报错,导致没法获得返回结果)
$ export C_FORCE_ROOT="true"
查看是否成功
$ echo $C_FORCE_ROOT
true
3、和task.py同级目录执行命令,启动celery
celery -A task worker --loglevel=info
注:task 是与独立模块的py文件名字一样
4、测试test.py
from task import add
r1 = add.delay(1,22)
r1.ready() #False代表没有完成,True代表已经完成
r1.get() #True之后,调用get()获得结果
5、运行test.py 可以看到输出内容
True
23
在启动celery的控制台也能看到相关的日志


0 0