バージョン: | 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 があります。
言語の相互運用性は、クライアントがワーカーによって要求される URL をキューに入れるような方法で Webhook を使用することによっても実現できます。
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 チャネルなど、サポートを求めて相談できるアクティブでフレンドリーなコミュニティがあります。
作成できる最も単純なアプリケーションの 1 つを次に示します。
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
高可用性
ワーカーとクライアントは接続の喪失または障害が発生した場合に自動的に再試行し、一部のブローカーはプライマリ/プライマリまたはプライマリ/レプリカのレプリケーション方法で HA をサポートします。
速い
単一の Celery プロセスは、ミリ秒未満のラウンドトリップ レイテンシーで 1 分間に数百万のタスクを処理できます (RabbitMQ、py-libabbitmq、最適化された設定を使用)。
フレキシブル
Celeryのほぼすべての部分 (カスタム プール実装、シリアライザー、圧縮スキーム、ロギング、スケジューラー、コンシューマー、プロデューサー、ブローカー トランスポートなど) を拡張したり、単独で使用したりできます。
メッセージトランスポート
- RabbitMQ、Redis、Amazon SQS、Google Pub/Sub
同時実行性
- Prefork、Eventlet、gevent、シングルスレッド (
solo
)結果ストア
- AMQP、Redis
- memcached
- SQLAlchemy、Django ORM
- Apache Cassandra、IronCache、Elasticsearch
- Googleクラウドストレージ
連載
- pickle 、 json 、 yaml 、 msgpack 。
- zlib 、 bzip2圧縮。
- 暗号化メッセージの署名。
Celery は Web フレームワークと簡単に統合でき、一部のフレームワークには統合パッケージもあります。
ジャンゴ 必要ありません ピラミッド ピラミッドセロリ パイロン セロリパイロン フラスコ 必要ありません web2py web2py-セロリ 竜巻 トルネードセロリ ファストAPI 必要ありません
統合パッケージは厳密には必須ではありませんが、開発を容易にすることができ、場合によってはfork
でデータベース接続を閉じるなどの重要なフックを追加します。
最新のドキュメントは Read The Docs でホストされており、ユーザー ガイド、チュートリアル、API リファレンスが含まれています。
Celery は、Python Package Index (PyPI) 経由またはソースからインストールできます。
pip
使用してインストールするには:
$ pip install -U セロリ
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] : | DataStaxドライバーの結果バックエンドとしてApache Cassandra/Astra DBを使用する場合。 |
celery[azureblockblob] : | 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 を使用する場合 ( |
celery[zookeeper] : | Zookeeper をメッセージトランスポートとして使用する場合。 |
celery[sqlalchemy] : | SQLAlchemy を結果バックエンドとして使用する場合 (サポートされています)。 |
celery[pyro] : | Pyro4 メッセージトランスポートを使用するため (実験的)。 |
celery[slmq] : | SoftLayer Message Queue トランスポート (実験的) を使用するため。 |
celery[consul] : | Consul.io Key/Value ストアをメッセージ トランスポートまたは結果バックエンドとして使用するため (実験的)。 |
celery[django] : | Django をサポートするために可能な最も低いバージョンを指定します。 おそらくこれを要件で使用しないでください。情報提供のみを目的としてここにあります。 |
celery[gcpubsub] : | Google Pub/Sub をメッセージトランスポートとして使用する場合。 |
PyPI から最新バージョンの Celery をダウンロードします。
https://pypi.org/project/celery/
次の手順でインストールできます。
$ tar xvfz celery-0.0.0.tar.gz $ cd セロリ-0.0.0 $ python setup.py ビルド # python setup.py インストール
現在 virtualenv を使用していない場合は、最後のコマンドを特権ユーザーとして実行する必要があります。
Celery 開発バージョンには、 kombu
、 amqp
、 billiard
、およびvine
の開発バージョンも必要です。
次の pip コマンドを使用して、これらの最新のスナップショットをインストールできます。
$ pip install https://github.com/celery/celery/zipball/main#egg=celery $ pip install https://github.com/celery/billiard/zipball/main#egg=billiard $ pip install https://github.com/celery/py-amqp/zipball/main#egg=amqp $ pip install https://github.com/celery/kombu/zipball/main#egg=kombu $ pip install https://github.com/celery/vine/zipball/main#egg=vine
「貢献」セクションを参照してください。
Celery の使用法、開発、将来について議論するには、celery-users メーリング リストに参加してください。
IRC でチャットしてください。 #celeryチャネルは Libera Chat ネットワークにあります。
提案、バグレポート、または迷惑な点がある場合は、https://github.com/celery/celery/issues/ にある問題トラッカーに報告してください。
https://github.com/celery/celery/wiki
このプロジェクトは、貢献してくださったすべての人々のおかげで存在します。セロリの開発は GitHub で行われます: https://github.com/celery/celery
セロリの開発に参加することを強くお勧めします。 GitHub が (何らかの理由で) 気に入らない場合は、定期的にパッチを送信してください。
ドキュメントの「Celery への貢献」セクションも必ずお読みください。
支援者の皆様、ありがとうございました! 【後援者になる】
スポンサーになってこのプロジェクトを支援してください。あなたのロゴが Web サイトへのリンクとともにここに表示されます。 【スポンサーになる】
このソフトウェアは、New BSD License に基づいてライセンス供与されています。完全なライセンス テキストについては、最上位の配布ディレクトリにあるLICENSE
ファイルを参照してください。