python消息队列celery高可用_消息队列celery初探

消息队列是网站架构中常用的组件,在异步任务、高并发等场景下使用广泛,celery是py下常用的消息队列,最近有一个异步计算需求,正好来学习一下celery的基本用法。

开发环境为window10、python3.6

首先安装celery,我们这里使用redis作为消息中间件

pip install celery[redis]

一共需要编写两个文件,一个任务(生产者)文件,一个生产者文件。

编写一个简单的任务文件celery_demo01.py,两个数相加,并加入sleep查看效果

# coding=utf-8

import time

from celery import Celery

broker = 'redis://localhost:6379/1'

backend = 'redis://localhost:6379/2'

app = Celery('demo01', broker=broker, backend=backend)

@app.task

def add(x, y):

print("enter call func")

time.sleep(5)

return x + y

编写生产者文件app.py

# coding=utf-8

from celery_demo01 import add

if __name__ == "__main__":

print("start")

result = add.delay(2,8)

print("end")

print(result)

现在开始测试

1.首先启动redis

394bd19f5bf1

2.进入工程目录,输入命令,启动worker

celery worker -A celery_demo01 -l INFO

394bd19f5bf1

3.进入工程目录,启动生产者

python app.py

可以看到任务已经成功提交

394bd19f5bf1

但是worker却报错

394bd19f5bf1

问了度娘发现是windows10下celery的异常,解决方案就是

pip install eventlet

启动worker时的命令加入参数: celery worker -A celery_demo01 -l INFO -P eventlet

重复之前步骤,问题解决,worker结果如下

394bd19f5bf1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值