私の理解から、Celeryは分散タスクキューです。つまり、タスク/ジョブを他のサーバーにディスパッチして結果を返すことだけです。 RabbitMQはメッセージキューです。しかし、作業者は、メッセージを受信したときにMQを聴いてタスクを実行することができます。これはセロリが提供するものを正確に実現するので、なぜセロリが必要なのでしょうか?なぜRabbitMQの代わりにCeleryを使用するのですか?
答えて
あなたはそうです、セロリをまったく必要としません。分散システムを設計する際には多くのオプションがあり、すべての状況に適した方法を実行する正しい方法はありません。
多くの人が、メッセージコンシューマのプールがキューに表示されるのを待っていること、仕事をしていること、仕事が終了したときにメッセージを送信する方が柔軟性があることを発見しました。
セロリーはパッケージ内にたくさんのものをまとめているフレームワークですが、パッケージ全体が本当に必要ない場合は、RabbitMQを設定して、必要なものだけをすべて実装することをお勧めします。さらに、RabbitMQは、Celeryが実装するタスクキューのシナリオ以外にも、より多くのシナリオで使用できます。
しかし、セロリを選んだ場合は、RabbitMQについて2回考えてください。 Celeryのメッセージキューイングモデルはシンプルであり、RabbitMQよりもRedisのようなものに適しています。ウサギにはセロリが基本的に無視する豊富なオプションがあります。
セロリは、基本的にはあなたが言ったことをするための素晴らしいインターフェイスを提供し、あなたのためのすべての設定を扱います。はい、手で行うことはできますが、セロリを書き直すだけです。
操作要素もあります。セロリの巨大な部分には、信頼性(特定の例外がシリアライズされたときなどにクラッシュしないなど)、およびワーカーやクラスタの管理などがあります。 – asksol
- 1. なぜAssembly.LoadFromの代わりにAssembly.LoadFileを使用しますか?
- 2. RELEASEの代わりにNDEBUGを使用するのはなぜですか?
- 3. WireMockの代わりにMockWebServerを使用するのはなぜですか?
- 4. なぜincqの代わりにlealを使用するのですか?
- 5. WCF/Silverlight:なぜクライアントの代わりにChannelFactoryを使用するのですか?
- 6. Symfonyプロキシの代わりにワニスを使用するのはなぜですか?
- 7. FragmentStatePagerAdapterの代わりにFragmentPagerAdapterを使用するのはなぜですか?
- 8. なぜJavaの代わりにClojureを使用するのですか
- 9. なぜwindow.locationの代わりにルーティングを使用するのですか?
- 10. なぜjasmine.createSpyの代わりにspyOnを使用するのですか?
- 11. マルコフモデルの代わりにRNNを使用するのはなぜですか?
- 12. なぜtf.stackの代わりにtf.concatを使用するのですか?
- 13. なぜzImageの代わりにuImageを使用するのですか?
- 14. なぜSQLBRITEで、代わりにSQLiteを使用するのですか?
- 15. セロリ:RabbitMQの代わりにPostgreSQLを使用
- 16. 既存のRabbitMQメッセージでCeleryを使用する
- 17. C#では、なぜStreamWriterの代わりにTextWriterを使用できますか?
- 18. シングルの代わりにダブルクリックするのはなぜですか?
- 19. なぜVaadinでVerticalLayoutの代わりにFormLayoutを使用しますか?
- 20. なぜ私のスクリプトにPHP7の代わりにPHP5を使用しますか
- 21. なぜ "new"を使用する代わりにCreateメソッドを使用するのですか?
- 22. なぜ使用されるビューの代わりに、SQL文
- 23. なぜmysqliでfetch_allの代わりにfetch_assocを使用するプロジェクト
- 24. なぜAndroidのスタジオはカレンダーの代わりにCalendarContract.Calendarsを使用しますか?
- 25. なぜ、spをdpの代わりにすべて使用するのではないのですか?
- 26. なぜboost :: ice_orを||の代わりに使うのですか? enable_ifの&&の代わりにboost :: ice_andを使用しますか?
- 27. なぜ代わりに+
- 28. なぜmemo.LineはTStringListの代わりにTStringsを使用しますか?
- 29. なぜRedis SortedSetはバランスツリーの代わりにスキップリストを使用しますか?
- 30. なぜRustは "switch"か "case"の代わりに "match"を使うのですか?
"ウサギにはセロリが基本的に無視する豊富なオプションがあります"。それは本当ですが、少し誤解を招くことです。例えば、ウサギの層でセロリによって制御されないルーティングルールを設定することはできますが、セロリタスクのルーティングと消費には影響します。これは、発信者、セルリーカスタムルータ、または交換メカニズムによってルーティングが処理されるかどうかにかかわらず、設計上の問題です。うさぎの設定がセロリにとって「不可視」になることは事実ですが、それが有用な効果を持たないというわけではありません。 –