Celery 分布式任务队列
高可用:任务失败或者连接断了自动重试
快:一个celery进程可以处理上10万的任务每分钟
灵活:可以自定义实现每一个模块
如果你是 windows 用户,首先现在安装 redis,
安装 celery
pip install celery
pip install redis
默认会安装好 celery 最新版本
创建 Celery 实例
app = Celery('tasks', broker='redis://localhost')
创建任务(tasks.py):
from celery import Celery
app = Celery('tasks', broker='redis://localhost')
@app.task
def add(x, y):
return x + y
启动worker进程:
celery -A tasks worker --loglevel=info
在代码中调用task:
>>> from tasks import add
>>> add.delay(4, 4)
执行过程:先会把任务放入队列(默认名字就叫celery)中,如果worker进程启动了,就会从队列中取出来,消费掉它。
AMQP 术语 MESSAGE
{'task': 'myapp.tasks.add',
'id': '54086c5e-6193-4575-8308-dbab76798756',
'args': [4, 4],
'kwargs': {}}
发送消息的客户端是生产者 接受消息的是消费者 broker:消息服务器,路由消息从生产者到消费者
交换机(exchange): 接收消息,转发消息到绑定的队列,有好几种类型
正常发送消息和接受消息的步骤:
1. 创建exchange
2. 创建队列
3. 绑定队列到exchange上
把 Celery 应用到 Application 中去:
Highly Available
Workers and clients will automatically retry in the event of connection loss or failure, and some brokers support HA in way of Master/Master or Master/Slave replication.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论