Celery

Posted anle123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Celery相关的知识,希望对你有一定的参考价值。

什么是Celery

Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理

Celery的优点

简单:一旦熟悉celery的工作流程后,配置和使用还是比较简单的

高可用:当任务执行失败或执行过程中发生链接中断,celery会自动尝试重新执行任务

快速:一个单进程的celery没分钟可处理上百万个任务

灵活:几乎celery的各个组件都可以被扩展及自定制

 

Celery架构

技术图片

 

 

 

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

消息中间件

Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等等

任务执行单元

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

任务结果存储

Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, redis等

版本支持情况

Celery version 4.0 runs on
        Python ?2.7, 3.4, 3.5?
        PyPy ?5.4, 5.5?
    This is the last version to support Python 2.7, and from the next version (Celery 5.x) Python 3.5 or newer is required.

    If you’re running an older version of Python, you need to be running an older version of Celery:

        Python 2.6: Celery series 3.1 or earlier.
        Python 2.5: Celery series 3.0 or earlier.
        Python 2.4 was Celery series 2.2 or earlier.

    Celery is a project with minimal funding, so we don’t support Microsoft Windows. Please don’t open any issues related to that platform.

 

以上是关于Celery的主要内容,如果未能解决你的问题,请参考以下文章

Celery实现定时任务crontab

Celery架构

Python / Celery:杀死父任务时如何杀死子任务?

我如何在 API 和工作人员中使用具有不同代码库的 celery

Celery+Rabbitmq实现异步任务

在 Celery 中使用 Python 标准日志记录