celery异步分布式
Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery
Celery有以下优点:
- 简单:一单熟悉了celery的工作流程后,配置和使用还是比较简单的
- 高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务
- 快速:一个单进程的celery每分钟可处理上百万个任务
- 灵活: 几乎celery的各个组件都可以被扩展及自定制
celery环境包下载安装,其中指定了阿里镜像,这样下载速度会快
- 1
- 2
celery由5个主要组件组成:
producer: 任务发布者, 通过调用API向celery发布任务的程序
celery beat: 任务调度, 根据配置文件发布定时任务
worker: 实际执行任务的程序
broker: 接受任务消息,存入队列再按顺序分发给worker执行
backend: 存储结果的服务器
from celery import *
broker = 'redis://127.0.0.1:6379/5' #消息存储数据存储在仓库5
backend = 'redis://127.0.0.1:6379/6' #消息执行后的结果包括函数返回值的数据存储在仓库6
app = Celery('test1', broker=broker,backend=backend)
app.conf.update(
CELERY_TASK_SERIALIZER='json', #任务消息信息保存为json格式
CELERY_ACCEPT_CONTENT=['json'],
CELERY_RESULT_SERIALIZER='json' # 结果信息保存为json格式)
@app.task
def add(a, b):
return a+b
借鉴内容:http://blog.csdn.net/bojie5744/article/details/52965668