Celery是一个功能完备即插即用的任务队列
Celery适用异步处理问题,比如发送邮件、文件上传,图像处理等等比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验
二、Celery特点:
简单,易于使用和维护,有丰富的文档
高效,单个Celery进程每分钟可以处理数百万个任务
灵活,Celery中几乎每个部分都可以自定义扩展
Celery非常易于集成到一些web开发框架中
三、安装Celery:pip install celery
四、Celery组成结构
任务队列是一种跨线程、跨机器工作的一种机制
任务队列中包含任务的工作单元。有专门的工作进程持续不断的监视任务队列,并从中获得新的任务并处理
Celery通过消息进行通信,通常使用一个叫broker(中间人)来协client(任务的发出者)和worker(任务的处理者)
client发出消息到队列中,broker将队列中的信息派发给worker来处理
一个Celery系统可以包含很多的worker和broker,可增强横向扩展性和高可用性能。
Celery组成结构是生产者消费者模型的一种体现
五、使用步骤
1、在子应用文件夹下创建异步调度文件夹,文件夹名任意取,这里命名为celery_tasks
2、在celery_tasks文件夹下创建main.py文件,用作启动文件
3、在启动文件中创建celery对象,#创建Celery对象 #参数main 设置脚本名 app = Celery('celery_tasks')
4、中间人broker,
示例:此处演示Redis数据库作为中间人broker
Celery需要一种解决消息的发送和接受的方式,我们把这种用来存储消息的的中间装置叫做message broker, 也可叫做消息中间人。

并在main.py文件中加载配置文件app.config_from_object('celery_tasks.config')
5、 在celery_tasks包中创建sms包,并创建tasks文件,让celery自动检测任务,

6、在启动文件中自动加载任务app.autodiscover_tasks(['celery_tasks.sms'])
7、在config.py文件中配置worker工人,

8、我们需要指令让Celery单独执行,需要在虚拟环境中执行
celery -A celery对象的路径 worker -l info
celery -A celery_tasks.main worker -l info
网友评论