美文网首页
Celery学习笔记

Celery学习笔记

作者: lijun_m | 来源:发表于2017-11-21 22:33 被阅读0次

            Celery 是一个由 Python 编写的简单、灵活、可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具。

            Celery 专注于实时任务处理,支持任务调度。

            说白了,它是一个分布式队列的管理工具,我们可以用 Celery 提供的接口快速实现并管理一个分布式的任务队列。

    (Celery 本身不是任务队列,它是管理分布式任务队列的工具,或者换一种说法,它封装好了操作常见任务队列的各种操作,我们用它可以快速进行任务队列的使用与管理,当然你也可以自己看 rabbitmq 等队列的文档然后自己实现相关操作都是没有问题的。)


     Celery架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。


    消息中间件

            Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis, MongoDB (experimental), Amazon SQS (experimental),CouchDB (experimental), SQLAlchemy (experimental),Django ORM (experimental), IronMQ

    任务执行单元

            Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。

    任务结果存储

            Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, Redis,memcached, MongoDB,SQLAlchemy, Django ORM,Apache Cassandra, IronCache


    定义一个task

    from  celery  import  Celery

    app = Celery('tasks', backend='amqp://guest@localhost//', broker='amqp://guest@localhost//')

    @app.task

    def  add(x, y):

        return  x + y

    其中,broker 就是中间件了;backend就是后端来发送状态消息,保持追踪任务的状态,存储或发送这些状态


    相关文章

      网友评论

          本文标题:Celery学习笔记

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