美文网首页
理解分布式任务队列Celery

理解分布式任务队列Celery

作者: elroyGuo | 来源:发表于2019-01-10 09:28 被阅读0次

一.使用Celery

    1.什么是Celery?

            Celery是一个专注于实时处理和任务调度的分布式任务队列。所谓任务就是消息,消息中的有效载荷中包含要执行任务需要的全部数据。

    2.使用Celery的常见场景如下:

             a.    web应用。当用户触发的一个操作需要较长时间才能执行完成时,可以把它作为任务交给Celery去异步执行,执行完成在返回给用                       户。这段时间用户不需要等待,提高了网站的整体吞吐量和响应时间。

             b.    定时任务。生产环境经常会跑一些定时任务。假如你有上千台的服务器、上千种任务,定时任务的管理很困难,Celery可以帮助我们

                    快速在不同的机器设定不同种任务。

             c.    其他可以异步执行的任务。为了充分提高网站性能,对于请求和响应之外的那些不要求必须同步完成的附加工作都可以异步完成。 比                      如发送短信/邮件、推送消息、清理/设置缓存等。

     3.Celery还提供了如下的特性:

             a.    方便地查看定时任务的执行情况,比如执行是否成功、当前状态、执行任务花费的时间等。

             b.    可以使用功能齐备的管理后台或者命令行添加、更新、删除任务。

             c.    方便把任务和配置管理相关联。

             d.    可选多进程、Eventlet和Gevent三种模式并发执行。

             e.    提供错误处理机制。

             f.    提供多种任务原语,方便实现任务分组、拆分和调用链。

             g.    支持多种消息代理和存储后端。

二.Celery的架构

    Celery包含如下组件:

            Celery Beat:    任务调度器,Beat进程会读取配置文件的内容,周期性地将配置中到期需要执行的任务发送给任务队列。

            Producer:    生产者,调用了Celery提供的API、函数或者装饰器而产生任务并交给任务队列处理的都是任务生产者。

            Celery Worker:    执行任务的消费者,通常会在多台服务器运行多个消费者来提高执行效率。

            Broker:    消息代理,或者叫作消息中间件,接受任务生产者发送过来的任务消息,存进队列再按序分发给任务消费方(通常是消息队列或者

            数据库)。

            Result Backend:    任务处理完后保存状态信息和结果,以供查询。Celery默认已支持Redis、RabbitMQ、MongoDB、Django ORM、

            SQLALchemy等方式。

        Celery的架构图:

            

                

                

相关文章

  • Celery

    Celery 是 Distributed Task Queue 分布式任务队列。 不太理解异步任务队列,看到有人说...

  • Celery初体验

    Celery与任务队列 Celery是Python中流行的分布式任务队列。所谓分布式任务队列,是一种将任务分发到不...

  • python-分布式任务队列

    celery 分布式任务队列工具 Celery是一个分布式任务队列工具,是一个异步的任务队列基于分布式消息传递 基...

  • celery学习笔记

    Celery 标签(空格分隔): celery Celery是一个分布式任务队列工具,是一个异步的任务队列基于分布...

  • celery--turorial

    Celery Celery (芹菜)是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/...

  • Celery初级

    什么是Celery Celery是管理分布式队列工具,可用于进行任务队列的使用和管理 Celery的结构 Brok...

  • 实现简单的python3+flask+celery+redis框

    详解python3+flask+celery+redis Celery是什么? Celery是个异步分布式任务队列...

  • celery redis rabbitMQ各是什么及之间的区别?

    Celery: Celery是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/进程/线...

  • Flask:在Flask中使用Celery实现异步任务

    摘要:Flask,Celery Celery简介 Celery是一个专注于实时处理和任务调度的分布式任务队列,使用...

  • Python Celery学习扎记

    Celery是什么 Celery是一个管理分布式队列的工具,它封装好了常见任务队列的各种操作,能够快速进行任务队列...

网友评论

      本文标题:理解分布式任务队列Celery

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