如何决定何时开始批量生产

时间:2019-11-12 17:58:39

标签: spring-boot spring-batch

我有一个带有spring batch的spring boot 2应用程序。

实际上,当应用程序启动时,批处理就开始了。

我想在创建或修改文件后开始自动启动,而不是自动启动。

要完全控制批处理开始我需要做什么?

@EnableBatchProcessing
@Configuration
public class CsvFileToDatabaseConfig {

    @Autowired
    public JobBuilderFactory jobBuilderFactory;

    @Autowired
    public StepBuilderFactory stepBuilderFactory;

    @Bean
    public FlatFileItemReader<Billings> billingeReader() {
        ....
    }

    @Bean
    ItemProcessor<Billings, Billings> billingProcessor() {
        ...
    }

    @Bean
    public JdbcBatchItemWriter<Billings> billingWriter() {
        ...
    }

    @Bean
    public Step csvFileToDatabaseStep() {
        ...
    }

    @Bean
    Job csvFileToDatabaseJob(JobCompletionNotificationListener listener) {
        ....
    }

}

1 个答案:

答案 0 :(得分:2)

您的问题的答案分为两个部分: 要禁用负责启动时启动作业的JobLauncherCommandLineRunner,请设置spring.batch.jobs.enabled=false(另请参见Spring Boot Batch - execluding JobLauncherCommandLineRunner)。 要从应用程序逻辑启动作业,请注入JobLauncher bean并将其启动方法与合适的作业参数一起传递给您的作业bean。