0
我有一個複雜的作業流程,其中有3個獨立的作業構建到JobStep中,然後從作業調用JobStep。這些JobSteps中將有四個將從調用作業並行運行。如何將一個簡單的字符串傳遞給Spring批處理作業
我需要將一個字符串作爲參數傳遞給它們。
一定程度的簡化代碼:
我主要如下所示:
public static void main(String[] args) {
SpringApplication.run(SomeApplication.class, args);
}
其中JobSteps的樣子
@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。您可以使用它將數據傳遞給Step –