| 版本: | 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是一个领先的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云存储
序列化
- Pickle , JSON , YAML , MSGPACK 。
- Zlib , BZIP2压缩。
- 加密消息签名。
框架集成
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许可获得许可。有关完整许可文本,请参见顶级分发目录中的许可证文件。
