spring batch 启动时自动执行,如何防止?
Spring Batch 默认情况下将在应用启动时运行所有的 Job。如果你想阻止这种自动执行,可以在 application.properties 或 application.yml 中设置以下属性:
spring.batch.job.enabled=false
通过添加以上配置,Spring Boot 将不会在启动时自动运行 batch jobs。
然后,你可以在需要时编程方式启动你的 Job,例如:
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job myJob;
public void launchJob() throws Exception {
JobParameters params = new JobParametersBuilder()
.addString("JobID", String.valueOf(System.currentTimeMillis()))
.toJobParameters();
jobLauncher.run(myJob, params);
}
在上述代码中,我们首先注入了 JobLauncher
和我们的 Job(名称为 myJob
)。然后,在 launchJob
方法中,我们创建了一组 JobParameters
并使用 JobLauncher
来启动我们的 Job。