0

メッセージキュー(RabbitMQ)を使用してアプリケーションに非同期ファイル生成モジュールを実装する予定です。ユーザーがWebアプリケーションUIを介してデータを入力すると、そのデータはMQに入れられます。データには、要求しているユーザーのIDも含まれています。キューをポーリングするワーカーアプリケーションがあります。作業者は、キューから項目を削除し、レコードを処理し、結果としてファイルを作成し、ファイルをデータベースに格納します。次の表に示すように私の要件はまだMQのすべての項目は」としてのステータスを表示する必要がありメッセージキュー内のアイテムのステータスを報告する方法

---------------------------- 
Report Name | Status  
---------------------------- 
Report 1  | Not Started 
Report 2  | Completed 
---------------------------- 

、私は彼らが作ったすべての要求の状況を示すユーザーにグリッドを表示したいということです開始されていません '。理論的には、これにより、MQのすべてのメッセージ(User ID =現在のユーザーID)を照会できるようになります。私は、SQLのテーブルとは違って、MQからのすべてのメッセージを覗くことはあまり効率的でないかもしれないと思います。基本的には、これを設計/アーキテクチャの観点から可能な限り最良の方法で処理するためのさまざまな/より良いオプションを探しています。

答えて

1

データベース(SQL)のどこかにシャドウテーブルを作成し、キュー内の項目をプッシュすると、データベース内に項目を追加し、キューから項目をプルすると状態を更新し、完了したら再びそれを行う。 はい、2番目のデータベースを持つのは少し頭痛ですが、キューはすべてのメッセージのステータスを更新するのではなく、メッセージを順番に処理するのに役立ちます。

関連する問題