1

私は現在、コントローラーがリクエストを受信すると長時間実行されるデータベース プロシージャをトリガーする Web アプリケーションで作業しています (リクエストは現在 AJAX リクエストです)。

私のコントローラーは次のようになります

@RequestMapping(value="/startProcedureCall.htm", method=RequestMethod.GET)
protected void startProcedureCall(HttpServletRequest request) {
    //do some stuff
    //...
    //...
    myService.callProcedure(); //<- this procedure may run upto an hour
    //... do some stuff
    //...
}

リクエストはmyService.callProcedure()、コードのコメントに記載されているように、実行が完了するまでコントローラーにとどまります。これは最大 1 時間実行される場合があります。

私の懸念は、Web サーバーがリクエストをコントローラに長時間閉じ込めることを許可するかどうかということです。これは何らかのタイムアウト エラーにはなりませんか?

現在、websphere を web サーバーとして使用しています。

4

1 に答える 1

2

Web サーバーの構成方法によって異なります。このようなリソースは、WebSphere のバージョンのタイムアウト設定を構成する方法を示しています。

ただし、非同期バッチ ジョブ ( Spring Batchなど) やキャッシングなどの別のアーキテクチャを検討することをお勧めします。ただの考えです。

于 2013-10-11T04:25:00.097 に答える