私はセロリについて学ぼうとしていますが、セロリとパイロが同じことを達成しようとしているのではないかと思っていました。
セロリができること、パイロができないこと、またはその逆があるかどうか誰かに教えてもらえますか?
公式ウェブサイトで見たように、CeleryとPyroは異なる仕事をするつもりですが、混乱はごく自然なことです。
両方のパッケージの目的は、分散コンピューティングを支援することですが、アプローチは異なります。Celeryは分散タスク スケジューラになることを目的としています。つまり、多数のタスク (非常に相関関係がない) がある場合、それらをコンピューター グリッドに分散できます。またはネットワーク経由。
一方、Pyroはネットワークを介してオブジェクト間の通信ゲートウェイを確立することを目的としています。これは、かなり大きなタスクがある場合、相関関係のない小さなタスクに分割することはできず、独立しているが通常は必要なオブジェクトの束を使用することを意味します。他のものについての情報があれば、Pyro はそれらの間の通信を可能にするので、コンピュータ グリッドまたはネットワークを介してオブジェクトを配布するタスクを実行できます。
これを Django タグで投稿すると、Web アプリケーションに対して実行されるリクエストは、相関関係のないタスクの束 (同時実行性が増加するにつれて大きなもの) と見なされる可能性があるため、Celeryはあなたが探しているものになります。
上記の回答は、Pyro と Celery の違いを説明しています。
しかし、Python に関して何年にもわたって起こった他のすべての変更と、Python ZeroMQ ライブラリと関数ピッキングの可用性を考慮すると、ZeroMQ と PiCloud の関数ピッキングを活用することを検討する価値があるかもしれません。これにより、分散スタックを構築するまったく新しい方法が生まれます。
jeffknupp.com ブログのリンク サンプル コードを参照してください。
はい、もちろん、タスクの分散ワーカーを開発するために Celery に固執することもできます。また、Pyro を使用すると、リモート プロシージャ コール アプリケーションを開発できます。Celery と Pyro では、これらすべてを Python の世界で行っていますが、ZeroMQ では、さまざまな言語での実装があり、PUB-SUB、REQ-RES、PIPES などのネットワークの一般的なパターンを実装しています。言語にとらわれない可能性を生み出す可能性。