celery 介绍
1.celery介绍:
- celery 是一个功能完备,即插即用的任务队列
- celery适合异步处理问题,例如 发送邮件,文件上传,图像处理等比较耗时的操作,将其异步执行,用户不用等太久,提高用户体验
2.celery 特点
- 简单
易于使用和维护,可以利用它只做一个最简单的应用程序
- 高度可用
如果连接丢失或失败,工作人员和客户端将自动重试 - 快速
单个celery 进程每分钟可处理数百万个任务 - 灵活
几乎celery的每个部分都可以自行扩展或使用,自定义池实现,序列化器,压缩方案,日志记录,调度程序,消费者,生产者,代理传输等
3.celery组成结构
celery 由 broker(中间人),client(任务的发出者)和worker(任务的处理者)三部分组成
client 发出消息到队列中,broker将队列中的信息派发给worker处理
一个celery系统可以包含很多的worker 和broker,可增强横向扩展性和高可用性能
celery 完成发送短信
1.创建celery异步任务文件
2.创建应用对象/客户端/client
在celery_tasks目录下创建main.py,用于作为celery的启动文件:
from celery import Celery
#创建Celery对象
app = Celery(‘celery_tasks’)
#加载配置文件
app.config_from_object(‘celery_tasks.config’)
#自动加载任务
app.autodiscover_tasks([‘celery_tasks.sms’])
3.把redis数据库作为中间人broker
在celery_tasks目录下创建 config.py 文件,用于保存celery的配置信息
broker_url = “redis://127.0.0.1/14”
result_backend = “redis://127.0.0.1/15”
4.创建任务,并让celery检测
添加任务,在celery_tasks包中创建sms包,并创建tasks文件
创建的任务包中,文件名必须是tasks,因为celery在检测任务时,只识别tasks文件
创建的任务必须是celery的实例对象的tasks的装饰器装饰
创建任务,就是定义函数
5.创建worker
把worker创建到ubuntu虚拟机中,ubuntu作为Celery服务器
加载配置:为celery使用django配置文件进行设置
需要指令让Celery单独执行,在虚拟环境中执行
celery -A celery对象路径 worker -l info
celery -A celrery_tasks.main worker -l info