celery

Python 2025-08-23

建立状态

版本: 5.5.3(免疫力)
网络: https://docs.*celer**yq.dev/en/stable/index.html
下载: https://**p*ypi.org/project/celery/
来源: https://gi*thu**b.com/celery/ celery /
Deepwiki:
关键字: 任务,队列,工作,异步,兔子,AMQP,REDIS,PYTHON,分发,演员

捐赠

开放集体

Open Collective是我们由社区驱动的资助平台,该平台为celery的持续开发提供了发展。您的赞助直接支持改进,维护和创新功能,以保持celery坚固和可靠。

对于企业

作为Tidelift订阅的一部分可用。

celery和其他成千上万个包裹的维护者正在与Tidelift合作,为您用于构建应用程序的开源依赖关系提供商业支持和维护。节省时间,降低风险并改善代码健康,同时支付您使用的确切依赖项的维护者。了解更多。

赞助商

铁匠

铁匠徽标

官方公告

CloudAmqp

CloudAMQP徽标

CloudAmQP是一个领先的RabbitMQ作为服务提供商。如果您需要高度可用的消息队列,那么一个理想的选择是使用CloudAmqp。 CloudAMQP拥有24,000多个运行式实例,是RabbitMQ的领先托管提供商,全世界的客户。

升级

UpStash提供了无服务器REDIS数据库服务,为希望利用无服务器体系结构的celery用户提供了无缝解决方案。 Upstash的无服务器REDIS服务设计具有最终的一致性模型和耐用的存储,并通过多层存储架构促进。

蜻蜓

蜻蜓徽标

Dragonfly是一种替换式替代品,可降低成本并提高性能。 Dragonfly旨在充分利用现代云硬件的力量并满足现代应用程序的数据需求,从而使开发人员摆脱了传统的内存数据存储的限制。

什么是任务队列?

任务队列被用作跨线或机器分配工作的机制。

任务队列的输入是一个工作单位,称为任务,专用的工作流程,然后不断监视新工作的队列。

celery通过消息进行交流,通常使用经纪人在客户和工人之间进行调解。为了启动客户客户在队列上输入消息的任务,经纪人然后将消息传递给工人。

celery系统可以由多个工人和经纪人组成,使位于高可用性和水平缩放。

celery是用Python编写的,但可以用任何语言实现该协议。除Python外,还有Node.js的节点celery ,PHP客户端,Go celery ,Gopher- celery for Go和Rusty celery for Rust。

语言互操作性也可以通过使用Webhooks来实现,以使客户端招募工人请求的URL。

我需要什么?

celery版本5.5.x运行:

  • Python(3.8,3.9,3.10,3.11,3.12,3.13)
  • pypy3.9+(v7.3.12+)

这是celery的版本,它将支持Python 3.8或更新。

如果您正在运行旧版本的Python,则需要运行旧版本的celery :

  • Python 3.7: celery 5.2或更早。
  • Python 3.6: celery 5.1或更早。
  • Python 2.7: celery 4.x系列。
  • Python 2.6: celery系列3.1或更早。
  • Python 2.5: celery系列3.0或更早。
  • Python 2.4: celery系列2.2或更早。

celery是一个具有最少资金的项目,因此我们不支持Microsoft Windows,但应该可以正常工作。请不要打开与该平台有关的任何问题。

celery通常与消息经纪人一起发送和接收消息。 RabbitMQ,REDIS运输的特征是完整的,但也为无数其他解决方案提供了实验支持,包括使用SQLITE进行本地开发。

celery可以在一台计算机上,多台机器甚至跨数据中心运行。

开始

如果这是您第一次尝试使用celery ,或者您是celery v5.5.5的新手,来自以前的版本,那么您应该阅读我们的入门教程:

  • celery的第一步

    教程教您开始使用celery所需的最低限度。

  • 下一步

    更完整的概述,显示更多功能。

您还可以使用托管经纪人Transport CloudAMQP开始使用celery 。 RabbitMQ最大的托管提供商是celery的骄傲赞助商。

celery是...

  • 简单的

    celery易于使用和维护,并且不需要配置文件

    它有一个积极,友好的社区,您可以与我们的邮件列表或IRC频道进行交谈。

    这是您可以制作的最简单的应用程序之一:

    celery app = celery ('hello', broker='amqp://guest@localhost//') @app.task def hello(): return 'hello world'">
     from celery import celery
    
    app = celery ( 'hello' , broker = 'amqp://guest@localhost//' )
    
    @ app . task
    def hello ():
        return 'hello world'
  • 高度可用

    工人和客户将在连接损失或失败的情况下自动重试,一些经纪人支持HA以主/主要主要/复制复制方式。

  • 快速地

    单个celery过程每分钟可以处理数百万个任务,并具有子毫秒往返潜伏期(使用RabbitMQ,Py-LibrabBitMQ和优化的设置)。

  • 灵活的

    celery的几乎每个部分都可以自行扩展或使用自定义泳池实现,连续化计划,压缩方案,日志记录,调度程序,消费者,生产商,经纪人,经纪人运输等等。

它支持...

  • 消息传输

    • Rabbitmq,Redis,Amazon SQS,Google Pub/Sub
  • 并发

    • 预叉,eventlet,gevent,单线螺纹(独奏)
  • 结果存储

    • AMQP,REDIS
    • 备忘录
    • Sqlalchemy,Django Orm
    • Apache Cassandra,Ironcache,Elasticsearch
    • Google云存储
  • 序列化

    • PickleJSONYAMLMSGPACK
    • ZlibBZIP2压缩。
    • 加密消息签名。

框架集成

celery很容易与Web框架集成,其中一些甚至具有集成软件包:

Django 不需要
金字塔 金字塔celery
celery -Pylons
烧瓶 不需要
web2py Web2py- celery
龙卷风 celery
Fastapi 不需要

集成软件包并不是严格必要的,但是它们可以使开发更容易,有时它们会添加重要的挂钩,例如关闭叉子的数据库连接。

文档

最新文档托管在读取文档,其中包含用户指南,教程和API参考。

安装

您可以通过Python软件包索引(PYPI)或源来安装celery 。

使用PIP安装:

 $ pip安装-u celery

celery还定义了一组捆绑包,可用于安装celery和给定功能的依赖项。

您可以使用括号中的要求或在PIP命令行中指定这些。可以通过通过逗号分隔多个捆绑包。

 $ pip安装“ celery [redis]”

$ pip安装“ celery [redis,auth,msgpack]”

可用以下捆绑包:

连续化器

celery [auth]: 用于使用Auth Security Serialializer。
celery [msgpack]: 用于使用MSGPACK序列化器。
celery [yaml]: 用于使用YAML序列化器。

并发

celery [Eventlet]: 用于使用Eventlet池。
celery [gevent]: 用于使用gevent池。

运输和后端

celery [AMQP]:

用于使用RabbitMQ AMQP Python库。

celery [redis]:

用于使用Redis作为消息传输或结果后端。

celery [SQS]:

用于使用Amazon SQS作为消息传输。

celery [tblib]:

用于使用task_remote_tracebacks功能。

celery [memcache]:

结果是后端使用memcached(使用PyliBMC)

celery [pymemcache]:

用于结果后端(纯Python实施)。

celery [Cassandra]:

因此,使用DataStax驱动程序使用Apache Cassandra/Astra DB。

celery [azureblockblob]:

为此,将Azure存储作为后端(使用Azure-Storage)

celery [S3]:

为了使用S3存储作为后端。

celery [GCS]:

结果是将Google Cloud Storage作为后端。

celery [Couchbase]:

结果是后端使用Couchbase。

celery [Arangodb]:

结果是后端使用ArangodB。

celery [Elasticsearch]:

结果是将Elasticsearch作为后端。

celery [riak]:

结果是后端使用riak。

celery [cosmosdbsql]:

为了使用Azure Cosmos DB作为后端(使用PydocumentDB)

celery [Zookeeper]:

用于使用Zookeeper作为消息传输。

celery [sqlalchemy]:

结果使用Sqlalchemy作为后端(支持)。

celery [pyro]:

用于使用PYRO4消息传输(实验)。

celery [SLMQ]:

用于使用软层消息队列传输(实验)。

celery [领事]:

用于使用Consul.io密钥/值存储作为消息传输或结果后端(实验)。

celery [django]:

指定Django支持的最低版本。

您可能不应在您的要求中使用它,而是仅出于信息目的。

celery [gcpubsub]:

用于使用Google Pub/sub作为消息传输。

从源下载和安装

从PYPI下载最新版本的celery :

https://**p*ypi.org/project/celery/

您可以通过执行以下操作来安装它:

 $ tar xvfz celery -0.0.0.tar.gz
$ CD celery -0.0.0
$ python setup.py构建
#python setup.py安装

如果您当前不使用Virtualenv,则必须将最后一个命令作为特权用户执行。

使用开发版本

与pip

celery开发版本还需要Kombu,AMQP,台球和Vine的开发版本。

您可以使用以下PIP命令安装这些快照的最新快照:

 $ pip安装https://gi*thu**b.com/celery/ celery /zipball/main#egg = celery
$ pip安装https://gi*thu**b.com/celery/billiard/zipball/main#egg=billiard
$ pip安装https://gi*thu**b.com/celery/py-amqp/zipball/main#egg=amqp
$ pip安装https://gi*thu**b.com/celery/kombu/zipball/main#egg=kombu
$ pip安装https://gi*thu**b.com/celery/vine/zipball/main#egg=vine

与git

请参阅贡献部分。

得到帮助

邮件列表

有关celery的使用,开发和未来的讨论,请加入celery用户邮件列表。

IRC

在IRC上与我们聊天。 # celery频道位于Libera聊天网络。

错误跟踪器

如果您有任何建议,错误报告或烦恼,请通过https://gi*thu**b.com/celery/ celery /dessoce/desise//

Wiki

https://gi*thu**b.com/celery/ celery /wiki

学分

贡献者

由于所有贡献的人,该项目的存在。 celery的开发发生在github:https://github.com/celery/ celery

您强烈鼓励您参加celery的发展。如果您不喜欢GitHub(由于某种原因),欢迎您发送常规补丁。

请务必阅读文档中对celery部分的贡献。

支持者

感谢我们所有的支持者! [成为支持者]

执照

该软件已根据新的BSD许可获得许可。有关完整许可文本,请参见顶级分发目录中的许可证文件。

下载源码

通过命令行克隆项目:

git clone https://github.com/celery/celery.git