目的: Excel レポートを生成します。UIから送信ボタンをクリックした後、コントローラー(JAVA)を呼び出します。その後、手順を使用してデータを入力し、サービスレイヤーで操作を行います。これには時間がかかります。これにより、UI でゲートウェイタイムアウトエラーが発生します (サーバーにある程度の負荷がかかります)。そのため、UI からコントローラーを呼び出し、Excel レポートがメールで送信されることをユーザーに伝えて、ユーザーがその画面でレポートを待たないようにすることを計画していました。
3 に答える
0
ユーザーがUIからリクエストを送信したら、コントローラーからデータベースにエントリを作成し、「リクエストを受け取りました。Excelがメールで送信されます」というメッセージをユーザーに送信します。
現在、バックグラウンドで実行中のジョブがあります。スレッドを使用してサーバー側でこのジョブを作成するか、Spring Batch を使用することをお勧めします。このジョブは次のことを行います
1) これは継続的に実行されるスレッドであり、このテーブルに UI からの新しいエントリがあるかどうかを何らかのフラグでチェックするか、これを見つけることができます。
2) このジョブは、Excel ファイルと顧客への電子メールを生成します
3) ファイルが電子メールで送信されたら、データベースで flag = false を更新して、次回このジョブが次回の処理で flag = false レコードのみを取得するようにします。
于 2012-11-09T08:43:50.910 に答える
0
Excel シートとその他のものにデータを入力する Java プログラムを作成します。次に、サーブレットで使用します
Process p=Runtime.getRuntime().exec(/*run your java program */);
これにより並列プロセスが作成され、サーブレットが終了します
于 2012-11-09T08:44:11.130 に答える