2016-08-08 7 views
0

RabbitMQで複数のキューに接続しようとしています。これらのキューの1つから新しいメッセージがポップされるたびに、私は外部プロセスを生成したいと思います。RabbitMQ:複数のキューから一度に1つのメッセージしか消費しない

このプロセスはメッセージを処理するのに時間がかかります。以前にポップアップしたものが完了するまで、その特定のキューからの別のメッセージの処理を開始したくありません。可能であれば、プロセス/スレッドを保持して、外部プロセスが完了してサーバーを終了するのを待つことは望ましくありません。理想的には、RabbitMQに接続してメッセージを確認できるように、いくつかの識別子を渡してこの外部プロセスを実行することをお勧めします。

このシステムをRabbitMQで設計することは可能ですか?これは答えに関係がある場合私はPythonとピカを使用しています。

ありがとうございます!

答えて

0

これを行うことができます。

準備が整ったらすぐにキューから読み込みたいので、外部プロセスを生成して見ることができるスレッドをスピンアップし、プロセスが完了したらキューから次のメッセージを取得します。複数のスレッドを並列に実行して、複数のキューを管理することができます。

私はあなたが欲しいものは何か分からないのですか? RabbitMQがあまりにもいっぱいになった場合(その要素の処理が遅すぎる/全くないため)、RabbitMQがキューに新しい要素を追加するのを止めようとしていますか?アイテムを追加する前に、そのキューにすでに存在するメッセージの数がすべてのキューの平均よりもはるかに大きくないことを確認してください。

+0

私は外部プロセスをスピンアップすることなくそれをしようとしていましたが、あなたが正しいです、私は準備ができたらキューからポップする必要があります。 –

関連する問題