首页 > 解决方案 > 如何使用弹簧批处理在作业中动态添加步骤

问题描述

我正在使用弹簧批处理,其中我有一个用例来配置具有动态步骤的作业。步骤数将取决于用户发送的请求。目前我正在使用 tasklet 方法来处理该步骤。

我不想分块处理数据。

任何解决此问题的方法,因此我可以使用动态步骤配置作业。

请从 JobConfiguration 中找到代码片段。

@Bean
public Job createBatchJob() {
    return jobFactory.get(JOB_TYPE)
            .preventRestart()
            .start(step1())
            .build();
}

@Bean
public Step step1() {
    return stepFactory.get(STEP_TYPE)
    .tasklet(batchTasklet).build();
}

如何在上述配置中配置动态步骤?

标签: javaspringspring-batch

解决方案


这是一种不同的情况,与如何在 Spring Batch 中创建动态步骤不完全相同。

基本上,我们需要动态步骤,但要在构建作业后懒惰地添加到作业中。

所以说我已经配置了一个工作,来处理一些文件。但是用户请求批处理并可以提交多个文件,现在基于用户通过 Rest api 提交的文件数量,我想将这些步骤添加到创建的作业中。

这种情况下是否支持在构建后向作业添加步骤?

或者有没有办法动态创建作业配置。

希望这能澄清这个问题。


推荐阅读