を変更するプロダクトマネージャーを説得、我々は機能があります。は、弊社のWebアプリケーションでは、長時間実行同期プロセスの設計
- は製品
- のリストを取得し
- 戻り値をExcelファイルに書き込みますダウンロードのためにユーザーにファイルを転送する
このプロセスは、2分を超えて製品の数に応じてより頻繁にかかる。リクエストによっては5分以上かかることがあります。平均的なユーザーは100〜500の製品をダウンロードし、要求には約1〜5分かかります。
すべてのWebサーバースレッドが1回の要求でアクティブになるには1分が長すぎると思います。それには時間がかかりますが、プロセス自体がサーバーのメモリ不足エラーを引き起こし、クラッシュします。
これは悪い習慣であることを納得させたいと思います。そのため、この状況で何をすべきかに関する推奨事項とともに、記事や書籍、またはソフトウェアアーキテクトの研究を引用してデザインを変更する必要があります。
誰もがこのような本/記事/研究を知っていますか?
1分でWebサーバースレッドが1回のリクエストでアクティブになるには時間がかかりすぎるという前提に同意できない場合は、どうか教えてください。
+1データをキャッシュする方法について私に指導してくれますか?この機能ではPOIを使用していますが、それでもプロセスには時間がかかります。 – Jeune
アーキテクチャが何であるかはっきりしていませんが、ehcacheを使ってhibernateを使って複雑なオブジェクトをキャッシュするのにOSCache(http://www.opensymphony.com/oscache/)を使用するのと同じくらい単純なことができます。また、Timerタスクを使用して定期的にデータを抽出し、キャッシュすることができます(OSCacheで)。だからあなたの優れた世代のロジックは最小限の作業をしなければなりません。 – Pushkar