版本: | 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
檔案以取得完整的許可證文字。