GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

celery

celery – 分散タスクキュー(開発ブランチ)

投稿日:

分散タスクキュー(開発ブランチ) http://celeryproject.org

バージョン: 4.2.0rc1(latentcall)
ウェブ: http://celeryproject.org/
ダウンロード: https://pypi.python.org/pypi/celery/
ソース: https://github.com/celery/celery/
キーワード: タスク、キュー、ジョブ、非同期、rabbitmq、amqp、redis、python、分散、アクター

タスクキューとは何ですか?

タスクキューは、スレッドまたはマシン間で作業を分散するためのメカニズムとして使用されます。

タスク・キューの入力はタスクと呼ばれる作業単位であり、専用のワーカー・プロセスは新しい作業が実行されるようにキューを絶えず監視します。

セロリーはメッセージを介して通信し、通常はブローカーを使用してクライアントとワーカーを仲介します。 クライアントがタスクを開始するために、クライアントがメッセージをキューに入れた後、ブローカーはメッセージをワーカーに配信します。

セロリシステムは、複数のワーカーとブローカーから構成され、高可用性と水平スケーリングにつながります。

セロリはPythonで書かれていますが、プロトコルはどの言語でも実装できます。 Pythonに加えて、Node.js用のノードセロリPHPクライアントがあります

言語相互運用性は、クライアントがワーカーによって要求されるURLをエンキューするような方法でウェブフックを使用することによっても達成できます。

私が必要なものは何?

Celeryバージョン4.1は、

  • Python(2.7,3.4,3.5、3.6)
  • PyPy(5.8)

これはPython 2.7をサポートする最後のバージョンで、次のバージョン(Celery 5.x)ではPython 3.5以降が必要です。

旧バージョンのPythonを実行している場合は、旧バージョンのCeleryを実行する必要があります。

  • Python 2.6:Celeryシリーズ3.1以前。
  • Python 2.5:Celeryシリーズ3.0以前。
  • Python 2.4は、Celeryシリーズ2.2以前でした。

Celeryは資金が最小限のプロジェクトなので、Microsoft Windowsはサポートしていません。 そのプラットフォームに関連する問題は開かないでください。

セロリは、通常、メッセージブローカと共にメッセージの送受信に使用されます。 RabbitMQ、Redisトランスポートは機能が完備されていますが、ローカル開発にSQLiteを使用するなど、他の多くのソリューションに対する実験的なサポートもあります。

セロリは、単一のマシン上、複数のマシン上、またはデータセンター間で実行することができます。

開始する

これが初めてCeleryを使用しようとしている場合、または以前のバージョンからCelery 4.1を初めて使用した場合は、開始チュートリアルをお読みください。

セロリは…

  • シンプル

    セロリは使いやすく保守も簡単で、 設定ファイルは必要ありませ

    メーリングリストやIRCチャンネルのような、サポートのために話すことができる活発でフレンドリーなコミュニティがあります。

    ここでは、あなたが作ることができる最も簡単なアプリケーションの1つです:

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

    接続の喪失や障害が発生した場合、作業者とクライアントは自動的に再試行し、一部のブローカーはプライマリ/プライマリまたはプライマリ/レプリカレプリケーションの途中でHAをサポートします。

  • 速い

    1つのセロリプロセスでは、ミリ秒以下の往復遅延(RabbitMQ、py-librabbitmq、および最適化された設定を使用)を使用して、1分間に何百万ものタスクを処理できます。

  • フレキシブル

    Celeryのほとんどの部分は、カスタムプール実装、シリアライザ、圧縮スキーム、ロギング、スケジューラ、コンシューマ、プロデューサ、ブローカトランスポートなど、独自に拡張または使用できます。

それはサポートしています…

  • メッセージ転送

  • 並行性

  • 結果ストア

    • AMQP、レディス
    • memcached
    • SQLAlchemy、Django ORM
    • Apache Cassandra、IronCache、Elasticsearch
  • シリアライゼーション

    • picklejsonyamlmsgpack
    • zlibbzip2圧縮。
    • 暗号メッセージ署名。

フレームワークの統合

セロリはWebフレームワークとの統合が容易で、一部には統合パッケージもあります。

ジャンゴ 必要ありません
ピラミッド ピラミッド_セルリー
パイロン セロリ – パイロン
フラスコ 必要ありません
web2py web2py-celery
竜巻 トルネードセロリ

統合パッケージは厳密には必要ではありませんが、開発を容易にすることができ、 fork時にデータベース接続を閉じるなどの重要なフックを追加することがあります。

ドキュメンテーション

最新のドキュメントは、ユーザーガイド、チュートリアル、およびAPIリファレンスを含むRead The Docsでホストされています。

インストール

Celeryは、Python Package Index(PyPI)またはソースからインストールできます。

pipを使用してインストールするには:

$ pip install -U Celery

バンドル

Celeryは、Celeryのインストールに使用できるバンドルのグループと、特定の機能の依存関係も定義しています。

これらは、ブラケットを使用して要件やpipコマンドラインで指定できます。 複数のバンドルはカンマで区切って指定できます。

$ pip install "celery[librabbitmq]"

$ pip install "celery[librabbitmq,redis,auth,msgpack]"

以下のバンドルを利用できます。

シリアライザ

celery[auth] authセキュリティシリアライザを使用しています。
celery[msgpack] msgpackシリアライザを使用しています。
celery[yaml] yamlシリアライザを使用しています。

並行性

celery[eventlet] eventletプールを使用する
celery[gevent] geventプールを使用する

トランスポートとバックエンド

celery[librabbitmq]

librabbitmq Cライブラリを使用しています。

celery[redis]

Redisをメッセージ転送または結果バックエンドとして使用する場合

celery[sqs]

Amazon SQSをメッセージトランスポートとして使用する場合( 実験的

celery[tblib ]:

task_remote_tracebacks機能を使用します。

celery[memcache]

結果バックエンドとしてMemcachedを使用する場合( pylibmcを使用)

celery[pymemcache]

結果のバックエンド(純粋なPython実装)としてMemcachedを使用するためのものです。

celery[cassandra]

Apache CassandraをDataStaxドライバのバックエンドとして使用するためのものです。

celery[couchbase]

結果のバックエンドとしてCouchbaseを使用するためのものです。

celery[elasticsearch]

結果のバックエンドとしてElasticsearchを使用しています。

celery[riak]

Riakを結果バックエンドとして使用するためのものです。

celery[zookeeper]

Zookeeperをメッセージトランスポートとして使用します。

celery[sqlalchemy]

SQLAlchemyを結果バックエンドとして使用する( サポート

celery[pyro]

Pyro4メッセージトランスポート( 実験的 )を使用するためのものです。

celery[slmq]

SoftLayer Message Queueトランスポートを使用する場合( 実験的 )。

celery[consul]

Consul.io Key / Valueストアをメッセージ転送または結果バックエンド( 実験的 )として使用します。

celery[django]

Djangoサポートのために可能な最も低いバージョンを指定します。

おそらくあなたの要件にこれを使用してはいけません。情報提供のみを目的としています。

ソースからのダウンロードとインストール

PyPIから最新版のCeleryをダウンロードしてください:

https://pypi.python.org/pypi/celery/

以下の手順でインストールできます:

$ tar xvfz celery-0.0.0.tar.gz
$ cd celery-0.0.0
$ python setup.py build
# python setup.py install

現在virtualenvを使用していない場合は、最後のコマンドを特権ユーザーとして実行する必要があります。

開発版の使用

ピップで

セロリの開発版では、 kombuamqpbilliard 、およびvine開発版も必要です。

次のpipコマンドを使用して、最新のスナップショットをインストールできます。

$ pip install https://github.com/celery/celery/zipball/master#egg=celery
$ pip install https://github.com/celery/billiard/zipball/master#egg=billiard
$ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp
$ pip install https://github.com/celery/kombu/zipball/master#egg=kombu
$ pip install https://github.com/celery/vine/zipball/master#egg=vine

gitで

寄稿のセクションをご覧ください。

ヘルプの利用

メーリングリスト

セロリーの利用、開発、未来についての議論については、 セロリのユーザーメーリングリストに参加してください。

IRC

IRCで私たちとチャットしましょう。 #celeryチャンネルはFreenodeネットワークにあります。

バグトラッカー

バグ報告や迷惑行為がある場合は、 https://github.com/celery/celery/issues/の問題追跡ツールに報告してください。

ウィキ

https://wiki.github.com/celery/celery/

クレジット

貢献者

このプロジェクトは、貢献するすべての人々のおかげで行われます。 GitHubでのセロリの開発: https : //github.com/celery/celery

セロリーの開発に参加することを強くお勧めします。 GitHubが好きではない場合(何らかの理由で)、定期的なパッチを送ってください。

また、ドキュメンテーションの「 セロリーへ寄稿」セクションも必ずお読みください。

バッカー

私たちの後援者に感謝します! 🙏 [ 後ろになる ]

スポンサー

スポンサーになることでこのプロジェクトをサポートしてください。 ロゴがあなたのウェブサイトへのリンクとともにここに表示されます。 [ スポンサーになる ]

ライセンス

このソフトウェアは、New BSDライセンスの下で使用許諾されます。 完全なライセンステキストについては、一番上のディストリビューションディレクトリにあるLICENSEファイルを参照してください。







-celery
-, , , , , , , , , , , , ,

執筆者: