版本: | 5.5.0rc3(免疫) |
---|---|
网址: | https://docs.celeryq.dev/en/stable/index.html |
下载: | https://pypi.org/project/celery/ |
来源: | https://github.com/celery/celery/ |
关键词: | 任务、队列、作业、异步、rabbitmq、amqp、redis、python、分布式、演员 |
这个项目依赖于您的慷慨捐赠。
如果您正在使用 Celery 来创建商业产品,请考虑成为我们的支持者或赞助商,以确保 Celery 的未来。
作为 Tidelift 订阅的一部分提供。
celery
和数千个其他软件包的维护者正在与 Tidelift 合作,为您用于构建应用程序的开源依赖项提供商业支持和维护。节省时间、降低风险并改善代码运行状况,同时向您使用的确切依赖项的维护人员付费。了解更多。
Dragonfly 是 Redis 的直接替代品,可以降低成本并提高性能。 Dragonfly 旨在充分利用现代云硬件的强大功能并满足现代应用程序的数据需求,使开发人员摆脱了传统内存数据存储的限制。
任务队列用作跨线程或机器分配工作的机制。
任务队列的输入是一个工作单元,称为任务,然后专用工作进程不断监视队列以执行新工作。
Celery 通过消息进行通信,通常使用代理在客户端和工作人员之间进行调解。为了启动任务,客户端将消息放入队列中,然后代理将消息传递给工作人员。
Celery 系统可以由多个工作人员和经纪人组成,从而实现高可用性和水平扩展。
Celery 是用 Python 编写的,但该协议可以用任何语言实现。除了 Python 之外,还有用于 Node.js 的 node-celery、PHP 客户端、gocelery、用于 Go 的 gopher-celery 以及用于 Rust 的 rusty-celery。
语言互操作性也可以通过使用 Webhooks 来实现,客户端将 URL 排入队列以供工作人员请求。
Celery 版本 5.5.x 运行于:
这是支持 Python 3.8 或更高版本的 celery 版本。
如果您运行的是旧版本的 Python,则需要运行旧版本的 Celery:
Celery 是一个资金最少的项目,因此我们不支持 Microsoft Windows,但它应该可以工作。请不要提出任何与该平台相关的问题。
Celery通常与消息代理一起使用来发送和接收消息。 RabbitMQ、Redis 传输功能齐全,但也对无数其他解决方案提供实验性支持,包括使用 SQLite 进行本地开发。
Celery可以在单台机器上运行,也可以在多台机器上运行,甚至可以跨数据中心运行。
如果这是您第一次尝试使用 Celery,或者您是以前版本的 Celery v5.5.x 新手,那么您应该阅读我们的入门教程:
芹菜的第一步
教程教您开始使用 Celery 所需的最低限度的知识。
后续步骤
更完整的概述,显示更多功能。
您还可以通过使用托管代理传输 CloudAMQP 来开始使用 Celery。 RabbitMQ 最大的托管提供商是 Celery 的赞助商。
简单的
Celery易于使用和维护,并且不需要配置文件。
它有一个活跃、友好的社区,您可以向其寻求支持,例如我们的邮件列表或 IRC 频道。
这是您可以制作的最简单的应用程序之一:
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
高可用
如果连接丢失或失败,工作人员和客户端将自动重试,并且一些代理以主/主或主/副本复制的方式支持高可用性。
快速地
单个 Celery 进程每分钟可以处理数百万个任务,往返延迟为亚毫秒级(使用 RabbitMQ、py-librabbitmq 和优化设置)。
灵活的
Celery的几乎每个部分都可以单独扩展或使用,自定义池实现、序列化器、压缩方案、日志记录、调度程序、消费者、生产者、代理传输等等。
消息传输
- RabbitMQ、Redis、Amazon SQS、Google Pub/Sub
并发性
- Prefork、Eventlet、gevent、单线程(
solo
)结果存储
- AMQP、Redis
- 内存缓存
- SQLAlchemy、Django ORM
- Apache Cassandra、IronCache、Elasticsearch
- 谷歌云存储
序列化
- pickle 、 json 、 yaml 、 msgpack 。
- zlib 、 bzip2压缩。
- 加密消息签名。
Celery 很容易与 Web 框架集成,其中一些框架甚至有集成包:
姜戈 不需要 金字塔 金字塔芹菜 塔架 芹菜塔 烧瓶 不需要 网络2py web2py-celery 龙卷风 龙卷风芹菜 快速API 不需要
集成包并不是绝对必要的,但它们可以使开发更容易,有时它们会添加重要的钩子,例如在fork
处关闭数据库连接。
最新文档托管在 Read The Docs,其中包含用户指南、教程和 API 参考。
您可以通过 Python 包索引 (PyPI) 或从源代码安装 Celery。
使用pip
安装:
$ pip install -U Celery
Celery 还定义了一组捆绑包,可用于安装 Celery 以及给定功能的依赖项。
您可以在您的要求中或使用括号在pip
命令行上指定这些内容。可以通过用逗号分隔来指定多个包。
$ pip install "celery[redis]" $ pip install "celery[redis,auth,msgpack]"
提供以下捆绑包:
celery[auth] : | 用于使用auth 安全序列化器。 |
---|---|
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 ]: | 用于使用 |
celery[memcache] : | 使用 Memcached 作为结果后端(使用 |
celery[pymemcache] : | 使用 Memcached 作为结果后端(纯 Python 实现)。 |
celery[cassandra] : | 用于使用 Apache Cassandra/Astra DB 作为 DataStax 驱动程序的结果后端。 |
celery[azureblockblob] : | 使用 Azure 存储作为结果后端(使用 |
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 作为结果后端(使用 |
celery[zookeeper] : | 使用 Zookeeper 作为消息传输。 |
celery[sqlalchemy] : | 使用 SQLAlchemy 作为结果后端(支持)。 |
celery[pyro] : | 用于使用 Pyro4 消息传输(实验性)。 |
celery[slmq] : | 用于使用 SoftLayer 消息队列传输(实验性)。 |
celery[consul] : | 使用 Consul.io 键/值存储作为消息传输或结果后端(实验性)。 |
celery[django] : | 指定 Django 支持的最低版本。 您可能不应该在您的需求中使用它,它仅供参考。 |
celery[gcpubsub] : | 用于使用 Google Pub/Sub 作为消息传输。 |
从 PyPI 下载最新版本的 Celery:
https://pypi.org/project/celery/
您可以通过执行以下操作来安装它:
$ tar xvfz celery-0.0.0.tar.gz $ cd celery-0.0.0 $ python setup.py 构建 # python setup.py 安装
如果您当前没有使用 virtualenv,则必须以特权用户身份执行最后一个命令。
Celery 开发版本还需要kombu
、 amqp
、 billiard
和vine
的开发版本。
您可以使用以下 pip 命令安装这些的最新快照:
$ pip 安装 https://github.com/celery/celery/zipball/main#egg=celery $ pip install https://github.com/celery/billiard/zipball/main#egg=billiard $ pip 安装 https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip 安装 https://github.com/celery/kombu/zipball/main#egg=kombu $ pip 安装 https://github.com/celery/vine/zipball/main#egg=vine
请参阅贡献部分。
有关 Celery 的使用、开发和未来的讨论,请加入 celery 用户邮件列表。
欢迎通过 IRC 与我们聊天。 #celery频道位于 Libera Chat 网络。
如果您有任何建议、错误报告或烦恼,请将其报告给我们的问题跟踪器:https://github.com/celery/celery/issues/
https://github.com/celery/celery/wiki
这个项目的存在要感谢所有做出贡献的人。 celery 的开发在 GitHub 上进行:https://github.com/celery/celery
我们强烈鼓励您参与 celery 的开发。如果您不喜欢 GitHub(出于某种原因),欢迎您定期发送补丁。
请务必阅读文档中的“为 Celery 做贡献”部分。
感谢我们所有的支持者! [成为支持者]
成为赞助商来支持该项目。您的徽标将显示在此处,并带有指向您网站的链接。 [成为赞助商]
该软件根据新 BSD 许可证获得许可。请参阅顶级分发目录中的LICENSE
文件以获取完整的许可证文本。