如何决定批次何时开始
how to decide when batch it's starting
我有一个 spring boot 2 应用程序 spring 批处理。
实际上当应用程序启动时,批处理就开始了。
我不想自动启动它,而是想在创建或修改文件后启动。
我需要做什么才能完全控制批次的开始?
@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) {
....
}
}
您问题的答案分为两部分:
要禁用负责在启动时启动作业的 JobLauncherCommandLineRunner
,请设置 spring.batch.jobs.enabled=false
(另请参阅 )。
要从您的应用程序逻辑启动作业,请注入 JobLauncher
bean 并将其启动方法与适当的作业参数一起传递给您的作业 bean。
我有一个 spring boot 2 应用程序 spring 批处理。
实际上当应用程序启动时,批处理就开始了。
我不想自动启动它,而是想在创建或修改文件后启动。
我需要做什么才能完全控制批次的开始?
@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) {
....
}
}
您问题的答案分为两部分:
要禁用负责在启动时启动作业的 JobLauncherCommandLineRunner
,请设置 spring.batch.jobs.enabled=false
(另请参阅 JobLauncher
bean 并将其启动方法与适当的作业参数一起传递给您的作业 bean。