Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
spring启动批处理,执行日期使用错误的值_Spring_Spring Boot_Spring Batch - Fatal编程技术网

spring启动批处理,执行日期使用错误的值

spring启动批处理,执行日期使用错误的值,spring,spring-boot,spring-batch,Spring,Spring Boot,Spring Batch,我有一个带有spring boot的spring批处理应用程序,具有以下配置类: @Bean public Job myaJob(JobBuilderFactory jobBuilderFactory, Step extractAccounts, Step transformAccounts, Step writeOutputFi

我有一个带有spring boot的spring批处理应用程序,具有以下配置类:

   @Bean
public Job myaJob(JobBuilderFactory jobBuilderFactory,
                           Step extractAccounts,
                           Step transformAccounts,
                           Step writeOutputFile) {

    return jobBuilderFactory.get(JOB_NAME)
                            .incrementer(new RunIdIncrementer())
                            .flow(extractAccounts)
                            .next(transformAccounts)
                            .next(writeOutputFile)
                            .end()
                            .build();
}
主类

@Log4j2
@SpringBootApplication
public class MyApplication implements CommandLineRunner {
@Autowired
JobLauncher jobLauncher;

@Autowired
Job myJob;

public static void main(String[] args) {

    SpringApplication.run(MyApplication .class, args);
}

@SneakyThrows
@Override
public void run(String... args) {

    JobParameters jobParameters = buildJobParameters();
    JobExecution jobExecution = jobLauncher.run(myJob, jobParameters);

}


protected JobParameters buildJobParameters() {

    return new JobParametersBuilder().addDate("executionDate", new Date())
                                     .toJobParameters();

}
问题是每次运行应用程序时,批处理都会执行两次,所有步骤都会调用两次,甚至作业也会调用两次,但当我删除
public void run(String…args)
的所有代码时,批处理会按预期正常执行一次,但是参数execution_date与删除代码之前使用的最后一个值保持一致。 关于如何解决这个问题有什么想法吗?

是的,只要使用

spring.batch.job.enabled=false
在application.properties或application.yml中,因此作业将执行一次。

是的,只需使用

spring.batch.job.enabled=false
在application.properties或application.yml中,因此作业将执行一次