web-dev-qa-db-ja.com

短期間のキューを設定するにはどうすればよいですか?

このシナリオはごく普通のように見えますが、奇妙なことに、メッセージングシステム(Google CloudPubSubやTaskQueuesなど ActiveMQ )はそれをサポートしていないようです-トピック/キューが長続きすると想定しています。

  • フロントエンドwebappサーバーは、バックエンドサーバーにリクエストを送信します。
  • バックエンドサーバーは、この要求に「チャネルXでメッセージを受信することを期待します」と応答します(非同期メッセージングシステムの用語は、「チャネル」ではなく「キュー」または「トピック」の場合があります)。
  • バックエンドサーバーは、結果を数秒ごとに約2分間Xに送り出します。
  • フロントエンドサーバーはチャネルXをポーリングして、これらの結果を取得します。

したがって、チャネルは2分間だけ存在する必要があります。

私はこれを行う方法を誤解していますか?適切な設計アプローチは何ですか?

1
Joshua Fox

ActiveMQはこれをサポートしており、JMSの一般的な機能です。 これを行う方法を示すリンクがあります。

現時点では特定のドキュメントが見つかりませんが、FOOなどのワイルドカードを使用して一般的なキュー構成を設定できることを思い出します。*次にFOO.BARに書き込むと、ActiveMQがそれを作成します。未読メッセージがある限り存在します。空になると、タイムアウトが経過すると消えます。

4
JimmyJames