システムの最後の部分を設計する方法を理解するのに苦労しています。現在、クライアントの要求に応答するサーブレットを備えたTomcatサーバーを実行しています。各リクエストは、非同期キューに処理メッセージを追加します(おそらく、SpringまたはAmazon SQS経由でJMSを使用します)。
イベントのシーケンスは次のとおりです。
送信側:
1。クライアント要求を受け取ります
2.この要求に関連するデータを一意のIDでDBに
追加します3.この要求を表すメッセージオブジェクトをメッセージキューに追加します
受信側:
1。キューから新しいメッセージオブジェクトをプルします
。2。オブジェクトをアンラップし、msgオブジェクトに含まれている情報に基づいてWebサイトからいくつかの情報を取得します。
3.電子メールアラートを送信します
。4。このリクエストの操作が完了したという情報でDB行(同じ一意のID)を更新します。
受信側を適切に処理する方法を理解するのに苦労しています。一方では、キュー内の各アイテムを選択して処理するコマンドラインから開始する単純なJavaプログラムを作成できる可能性があります。安全ですか?そのプログラムをTomcatコンテナ内の別のスレッドとして実行する方が理にかなっていますか?これを連続して実行したくはありません。つまり、受信側は、複数のスレッドを使用して、一度に複数のオブジェクトを処理できる必要があります。私はこれを24時間常に実行したいと思っています。
受信側を構築するためのいくつかのオプションは何ですか?