スプリングブートとスプリングバッチを使って並列処理を実装しようとしています。このバッチは、いくつかの必須パラメーターを使用して UI からトリガーされます
リクエストパラメーターに基づいてステップを作成する必要があります。以下のように試しましたが、
残りのコントローラーの外観は、
JobParameters jobParameters = new JobParametersBuilder().addLong("JobID",System.currentTimeMillis())
.addString("fileName", filename)
.addString("buisinessDate", model.getGeneralServiceModel().getBusinessDate())
.addString("source", model.getGeneralServiceModel().getSource())
.toJobParameters();
jobLauncher.run(job, jobParameters);
そしてバッチ設定:
Flow masterFlow = (Flow)new FlowBuilder("masterFlow").start(stepOne()).build();
List<Step> steps = new ArrayList<Step>();
for (ConcurrentLinkedQueue date : taskOne.readFile()) {
steps.add(createStep(date));
}
return jobs.get("myJob")
.start(masterFlow)
.next(createParallelFlow(steps))
.end()
.build();
masterFlow はジョブ パラメータをその変数に読み込み、readFile() はリストを提供します (これに基づいてステップを作成する必要があります)。これには jobParameters が必要です。
問題は:
私のアプリケーション自体を起動している間、 readFile() が実行されています。ただし、必要なパラメーターがあるため、RestController を介してジョブがトリガーされたときに実行する必要があります。
アプリケーションの起動中にこの実行を停止するにはどうすればよいですか?