私はSpringバッチフレームワークにはかなり新しいです。バッチマルチスレッドItemWriter
現在、読者とライターでバッチを書いています。
リーダはDbから読み取りを行い、ライターはフラットファイルに書き込みます。レコード数は100万です。ファイルへの書き込みには多くの時間がかかり、その点を改善したい。
write()
メソッドが並行して実行されるように、私はライターでマルチスレッド化を達成する最良の方法は何ですか?
注:@BeforeStep
と@AfterStep
コールバックでは、ファイルのヘッダーとフッターを作成しています。 write()
メソッドはレコードをファイルに書き込みます。
EDIT:
は、ファイルへの書き込みには多くの時間を取っていないが、暗号解読のいくつかの並べ替えを行い、当社の内部方法の一つは、1つのレコードの500msのほどかかります、という私を発見しました。そして、私たちは100万のそのような記録を持っています。
複数のスレッドで復号化を実行してパフォーマンスを向上させることはできますか?私はここから改善する方法を理解することができません。
時間がかかりますか?この種のことは通常I/Oバインドであり、複数のスレッドは役に立ちません。 – chrylis
時間を見れば100万レコードになるとファイルに書き込むのに時間がかかります。私は、並列スレッドでファイルを書き込むと時間をかけて改善することを望んでいました。 – Miral
複数のスレッドがプロセスをより速くすることを意味するわけではありません。 –