celery异步调度

一、Celery介绍

    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

    

你可能感兴趣的:(celery异步调度)