私は、毎分スケジューラによって呼び出され、ftpからファイルを取得し、そのレコードをDBに保存するメソッドを持っています。私はこれは本当に処理するスレッド安全な方法になるだろう スケジュールされたメソッドをスレッドセーフにする
public synchronized void processData(String data){
//do processing
}
..方法は、一度に複数のファイルを実行する必要がある場合、それはスレッドセーフな方法で動作するように、このスレッドを安全にする必要があります大量の負荷を正常に処理できますか?
私のシナリオでは、schedulerが11時に呼び出され、1000個のファイルがprocessDataメソッドで処理されると想定できます。スケジューラーは1分ごとに起動するように構成されており、11:01に再度呼び出されますが、最初の1000個のファイルの処理は完了しません。このシナリオに対処する最善の方法は何でしょうか? 1.メソッド で同期キーワードを削除します。2.ファイルプロセスごとに新しいスレッドを開始します ? – Sanath