0

私は Java Spring Framework を初めて使用します。Rails 開発者です。バックグラウンド ジョブを実行する必要があるなどの Java Spring の要件がありますが、応答がエンド ユーザーに送信された後です。ジョブが完了するのを待つべきではありません。ただし、アクションが完了するたびにジョブを実行する必要があります。

ウェブサービスアプリです。Service、Bo、および DAO レイヤーがあり、応答がユーザーに送信される前にデータベースでユーザー データを処理中に発生した例外をログに記録していますが、パフォーマンスを向上させるために、応答がユーザーに送信された後に移動 (例外処理) したいと考えています。

レールでは、アクションが実行された後にコールバック/フィルターがあり、実行したいメソッドを呼び出すことを覚えています。Java Springでも同じことが利用できますか?

ありがとう、センティル

4

1 に答える 1

0

ユースケースは、ユーザーが長時間実行されるタスクを要求し、すぐに応答を返し、バックグラウンドでタスクを起動したいようなものだと思います。

春はこれを助けることができます。見る

http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html

特に@Async注釈を参照してください。

非同期処理 (例外またはその他) に続いて応答を返すクライアントに関しては、それを行うことはできますが、それは余分な作業です。

通常、即時の応答には、一定期間後にクライアントが返すことができる何らかの ID が含まれます。(たとえば、Splunk API に対して検索を実行すると、ジョブ ID が表示され、後でそのジョブ ID を使用して結果を確認します)。これが機能する場合は、そうしてください。クライアントはポーリングする必要がありますが、実装は最も単純です。

そうでない場合は、クライアントが応答をリッスンするための何らかの方法が必要です。これは、クライアントの「返信先」Web サービス エンドポイント (おそらく、元の要求と共にカスタムX-Reply-ToHTTP ヘッダーとして渡される) であったり、メッセージ キューなどであったりします。

于 2013-09-22T06:46:27.867 に答える