Моя работа состоит из нескольких потоков.У меня есть ситуация, когда мне нужно повторить выполнение потока несколько раз.
Я искал в Интернете, но не смог найти ни одного примера для этого сценария.Я пытался использовать конструкции on () to (), но он не работает должным образом.
Рассмотрим приведенный ниже пример:
@Bean
public Job job() {
Flow deleteDataFrom UIflow = new FlowBuilder<SimpleFlow>("processOrderflow")
.start(step1())
.next(step2())
.build();
Flow flow2 = new FlowBuilder<SimpleFlow>("flow2")
.start(step3())
.build();
return this.jobBuilderFactory.get("job")
.start(processOrderflow)
.next(flow2)
.end()
.build();
}
@Bean
public Step step1(){
Tasklet taskLeiD = new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("Delete data from datasource A");
return RepeatStatus.FINISHED;
}
};
return this.stepBuilderFactory.get("deleteDataFromA").tasklet(taskLeiD).build();
}
@Bean
public Step step2(){
Tasklet a = new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("Delete data from datasource B");
return RepeatStatus.FINISHED;
}
};
return this.stepBuilderFactory.get("deleteDataFromB").tasklet(a).build();
}
@Bean
public Step step3(){
Tasklet a = new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("Delete data from datasource C");
return RepeatStatus.FINISHED;
}
};
return this.stepBuilderFactory.get("deleteDataFromC").tasklet(a).build();
}
У меня есть список заказов.Для каждого заказа в списке я хочу выполнить processOrderflow один раз.Как я могу это сделать?Я буду очень признателен, если кто-то может указать мне правильное направление.
Приведенный выше пример является простым примером, но в действительности поток, который я хочу выполнить несколько раз, имеет несколько подпотоков, и каждый из этих подпотоков состоит из нескольких этапов.Итак, главный вопрос - как такой поток может быть выполнен несколько раз?