私は、JavaベースのスプリングブートWebアプリケーションで非常に長いプロセスを実行する必要があります。このプロセスは、以下の手順で構成されます。JavaベースのWebアプリケーションで非常に長いプロセスを実行するには?
- データベースから約300,000人のユーザーの詳細を取得します。
- 繰り返します。
- itextを使用する各ユーザーのPDFファイルを生成します。
- PDFファイルをファイルシステムに保存します。
- 指定されたユーザーのPDFファイルが作成されたことをデータベースで更新します。
- データベース内のユーザーのPDFパスを更新します。
このプロセス全体には多くの時間がかかります。各ユーザーのためにpdfファイルを作成し、次にたくさんのdbを更新することからなるので、何時間もかかるかもしれませんし、日でもあります。
また、このプロセスをバックグラウンドで実行すると、残りのWebアプリケーションを円滑に実行できるようになります。
私はSpring BatchまたはMessaging Queueを使用することを考えています。そのような問題のための適切なフレームワークであるか、またはこれらの2つのうちのどれが問題に最も適しているかは不明です。
このような種類のタスクを実装する理想的な方法は何ですか?
何らかのタイプのスケジューリングが必要ですか? –
@Rodrigo Villalba Zayasスケジューリング?あんまり。 Webアプリケーションでは、UIにプロセスの開始を示すボタンがあり、プロセスが開始されます。 – ashishjmeshram