私は3つの別々のジョブをJobStepに組み込んだ複雑なジョブフローを持っています。そしてJobStepをジョブから呼び出します。呼び出しジョブから並行して実行されるJobStepsは4つあります。Springバッチジョブに単純な文字列を渡す方法
文字列をパラメータとして渡す必要があります。
やや単純化されたコード:このような
私の主なルックス:JobStepsの
public static void main(String[] args) {
SpringApplication.run(SomeApplication.class, args);
}
一つの残りの部分を実行し、トップの仕事は
のように見えます@Bean
public JobStep jobStep1(<snip>){
<snip for clarity>
JobStep jobStep = new JobStep() ;
jobStep.setJob(jobs.get(jobName)
.incrementer(new RunIdIncrementer()).listener(listener)
.start(Flow1)
.next(Flow2)
.next(Flow3)
.end().build());
jobStep.setJobRepository(jobRepository);
jobStep.setJobLauncher(jobLauncher);
return jobStep;
}
のように見えます
@Bean
public Job parentJob(<snip>) {
Flow childJobFlow = new FlowBuilder<SimpleFlow>("childJob").start(job1).build();
Flow childJobFlow2 = new FlowBuilder<SimpleFlow>("childJob2").start(job2).build();
FlowBuilder<SimpleFlow> builder = new FlowBuilder<SimpleFlow>("jobFlow");
Flow jobFLow = builder.split(new SimpleAsyncTaskExecutor()).add(childJobFlow,childJobFlow2).build();
return jobs.get("parentJob")
.incrementer(new RunIdIncrementer()).listener(listener)
.start(jobFLow)
.end().build();
}
別の文字列を取得するために、それぞれのJobStepが必要です。
Partitionerをご覧ください。あなたはそれを使用してデータをステップに渡すことができます –