1

Tomcat のサーバーで動作する Grails が 1 つあります。このアプリは、MySQL サーバーから情報をエクスポートするための Web インターフェイスです。この情報は、行った選択に応じてエクスポートできますが、時間がかかります。最大の部分またはプロセスは約 40 分です。これは、データベースからすべての情報をエクスポートし、1 つの zip ファイルに圧縮してユーザーに返す必要があるときです。

すべて正常に動作していますが、1 つのクライアントに問題があります。ある種のプロキシがインストールされており、3 分間非アクティブ状態が続くとサーバーとの接続が閉じられ、エクスポートするために選択できるすべての組み合わせに時間がかかるため、何もエクスポートできません。

サーバー側が圧縮ファイルを計算して作成している間、クライアント側である GSP ページは何もせず、待機しているだけです。この接続の終了を回避するにはどうすればよいですか?

これはクライアントを受け取っているメッセージです:

Network Error (tcp_error) 通信エラーが発生しました: "" 詳細な技術情報: URL: * *** Proxy: fe0psg03 Client Address: 10.2.122.105 Time: [15/10/2012:15:41:40 GMT] User: DE \roklinne Web サーバーがダウンしているか、ビジー状態であるか、他の問題が発生してリクエストに応答できない可能性があります。後で再試行することをお勧めします。

よろしくお願いいたします。

4

1 に答える 1

1

このプロセスには最大 40 分かかるためです。タスクをスピンオフしてバックグラウンドで実行することを検討します。

いくつかの提案...

1) Java 5 同時実行クラスを使用するだけです (余分な作業はほとんどありません)。

2) Fork/Join および Parallel Array の便利な抽象化を提供する JSR-166y ライブラリ。

3) バックグラウンド スレッド Grails プラグイン

この後、進行状況バーを表示して、ユーザーに状況の最新情報を提供できます。

于 2012-10-17T14:05:11.513 に答える