在Spring Batch中多次执行Flow

时间:2019-06-07 04:42:54

标签: spring-batch

“我的工作”由多个流程组成。我遇到需要重复执行流多次的情况。

我搜索了Internet,但是找不到这种情况的一个例子。我尝试使用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。我怎样才能做到这一点?如果有人能指出正确的方向,我将不胜感激。

上面的示例是一个简单的示例,但实际上,我要执行多次的流程只有很少的子流程,并且每个子流程都有多个步骤。因此,最终的问题是如何像这样的流程多次执行?

0 个答案:

没有答案