7

メッセージを受信するたびに、コンシューマーにいくつかのアクションを実行してもらいたい。コンシューマーはキューを24時間年中無休で「リッスン」して実行する必要がありますか、それとも適切なメッセージを受信した場合にのみ実行できますか?

4

1 に答える 1

1

あなたの質問が理にかなっているのかわかりません。メッセージは、キューのコンシューマーのみがキューから受信できます。メッセージがキューにあるかどうかを知るには、キューを調べる必要があります。それを行う唯一の方法は、消費者になることです。

本当に必要な場合は、管理プラグインのコマンドラインインターフェイスを実行するスクリプトを作成できます。これにより、キューがポーリングされ、サイズが複数の場合、コンシューマーを実行してキューから消費するプログラムを開始できます。

これはどれも意味がありません。キューを待っているだけで他に何もしていない場合は、リソースをほとんど消費していないため、24時間年中無休でコンシューマーを実行している場合の問題はわかりません。

もちろん、消費者は24時間年中無休で実行する必要はありません。これはMQのポイントの一部です。非同期です。プロデューサーがキューに書き込むときに、コンシューマーが実行されている必要はありません。したがって、キューからのメッセージをチェックして処理するためにコンシューマーを定期的に実行するスケジュールされたタスクを持つことができます。しかし、私はそれがあなたが望むものだとは思いません。

聞くことの全体的なポイントは、メッセージが来るまで何もしない、メッセージを処理する、次のメッセージまで何もしないということです。これはあなたがあなたの質問の最初の文が欲しいものです。なぜリスニングに問題があるのですか?

于 2012-11-05T16:23:24.377 に答える