2017-04-12 17 views
2

Celeryは主にRabbitMQのようなメッセージキューの高水準インタフェースですか?私は複数のスケジュールされた作業者が同時にHTTPリクエストを行うシステムをセットアップしようとしていますが、どちらかが必要かどうかはわかりません。私が疑問に思っているもう一つの質問は、セロリやRabbitMQを使用している場合、作業者が完了するためのコードに実際の作業を書いているところです。CeleryとRabbitMQの関係は何ですか?

答えて

1

RabbitMQは確かにメッセージキューであり、Celeryはそれを使用してワーカーとの間でメッセージを送信します。セロリは、RabbitMQの単なるインタフェース以上のものです。セロリは、従業員の作成、タスクの開始、およびタスクの定義に使用します。あなたのユースケースがCelery/RabbitMQにとって理にかなっているように思えます。 @app.taskデコレータを使用してタスクを作成します。詳細についてはdocsをご確認ください。以前のプロジェクトでは、セロリ用のモジュールをセットアップしました。ここでは、必要なタスクを定義しています。その後、他のモジュールの機能を引き込み、自分の仕事に使うことができます。

1

セロリはタスクをスケジューリングするためのAPI、それらのジョブを開始するコード、何が起きているかを監視するために使用する管理ツール(花など)です。

RabbitMQは、セリーのいくつかの「バックエンド」の1つです。 CeleryはRabbitMQの高水準インターフェースであると言っても過言ではありません。 RabbitMQは、セロリが正しく動作し、正しく動作するために実際には必要とされません。しかし、実際には、それらはしばしばペアになっており、CeleryはRabbitMQ(または別のキューやメッセージ配信のバックエンド)を使って、より低いレベルで行うことができるより高いレベルの方法です。

関連する問題