美文网首页
celery异步调度

celery异步调度

作者: 咏远瑞智 | 来源:发表于2018-07-30 16:33 被阅读0次

    一、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异步调度

          本文链接:https://www.haomeiwen.com/subject/blbfvftx.html