hereを超えるスレッドに似たような状況に遭遇しています。違いは、Webサービスを使用していないことです。しかし、むしろ私たちはWebアプリケーションを使用しています。私たちは、ユーザーが少なくとも30列の8000レコードをダウンロードできるようにするための要件を持っています。これはjxl経由でExcelファイルに書き込まれます。長期実行同期プロセスにはどのようなJava/Designパターンを使用できますか?
これは私が知らない理由で非同期に実行されていない、長時間実行されるプロセスです。それはまた、500〜800 MBという膨大なメモリフットプリントを持っています。すべてを上にするには、平均2分10秒かかる。
私たちが現在行っていることは、アプリケーションサーバーからjms経由でこの要件をプロセス外に委譲していることです。アプリケーションサーバーはその要求をブローカに送信し、その後、コンシューマがキューからリクエストを取得して処理し、ExcelファイルのURLを返します。
私はJMSについて読んで読んでいて、示唆されている用途のほとんどに非同期要求が含まれているため、ユーザーがメールを送信するなどの長い時間待たずに承認、請求書発行。このthreadには多くの例があり、提案されたユースケースは非同期で行うことができます。だから、現在のソリューションは真のソリューションではなく、ハックのように聞こえる。
このプロセスをさらに改善するために提案するパターンはありますか?
編集:残念ながら、それはビジネス要件のため、機能のものと呼ぶことができますが、残念ながら「同期性」を排除できません。だから私は、パフォーマンスを向上させ、代わりにプロセスのヒープメモリ使用量を減らすことができる答え/調整/トリック/パターンを探しています。
JMS部分プロセス全体を非同期にします。 –