@Configuration
@EnableBatchProcessing
public class FileTypeX1Configuration{
private FileTypeX1PRocessor fileTypeX1PRocessor ;
private FileTypeX1Writer fileTypeX1Writer ;
.
.
}
.
.
.
@Configuration
@EnableBatchProcessing
public class FileTypeX10Configuration{
private FileTypeX10PRocessor fileTypeX10PRocessor ;
private FileTypeX1oWriter fileTypeX10Writer ;
.
.
}
首先,只需在一个配置类中添加@enableBatchProcessing
。这通常被添加到Spring Boot应用程序的主类中:
@SpringBootApplication
@EnableBatchProcessing
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
现在,关于条件作业启动,有几种方法可以做到这一点(比如使用Spring概要文件,使用基于@condition
的自定义条件来定义作业bean,等等)。但最直接的方法是在其中做主要的方法:
@SpringBootApplication
@EnableBatchProcessing
public class SampleApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(SampleApplication.class, args);
JobLauncher jobLauncher = context.getBean(JobLauncher.class);
File file = .. // get file
// based on file type, run the required job:
Job job = context.getBean("jobX", Job.class);
jobLauncher.run(job, new JobParameters());
}
}
您需要设置Spring.batch.job.enabled=false
,以防止Spring Boot在应用程序启动时运行所有作业。
我有一个作业流,我希望以以下方式运行它: 作业流将从Job1开始。在Job1成功完成后,Job1将同时启动Job2和Job4。 Job2和Job4将并行运行。 在Job2成功完成后,Job2将启动Job3。 在Job4成功完成后,Job4将启动Job5。 下面是job1.xml和job1的作业启动器类的代码片段: job1.xml uijobLauncher.java “job2,Job3”对和“
问题内容: 运行main方法时,将执行作业。这样我无法弄清楚如何控制作业的执行。例如,您如何安排作业,访问作业执行或设置作业参数的方式。 我试图注册自己的JobLauncher 但是当我尝试在主要方法中使用它时: 当加载上下文时,该作业再次执行,而当我尝试手动运行它时,我得到了。有没有办法防止自动作业执行? 问题答案: 通过设置可以防止作业执行 在application.properties中。或
我按照这个示例使用Boot进行Spring批处理。 运行main方法时,作业将执行。这样我就不知道如何控制作业的执行了。例如如何排定作业、访问作业执行或设置作业参数。 我尝试注册自己的JobLauncher 但当我尝试在主法中使用时: 当加载上下文时,再次执行作业,并且尝试手动运行作业时得到。有没有办法防止自动执行作业?
我在BatchScheduler中有多个计划作业,它在特定时间运行。简单的内置JobLauncher,这是同步的。在自然界中最初使用。现在,我想并行运行这些作业,这样没有作业可以等待其他作业完成。 我在不同的作业上尝试过@Async注释,但都不起作用。 然后,我尝试设置joblauncher.settaskexecutor(新的SimpleAsyncTaskExecutor())。但这并不奏效。
当共享文件夹中的文件可用时,我希望立即运行Spring批处理作业。我已经制作了一个观察器服务来检查目录中的新条目,但是我如何触发我的批处理作业呢? 我做了以下更改- 现在,如果我尝试运行代码,我会得到下面的响应- 10.506秒内启动应用程序(JVM运行为11.676)2018-07-23 16:55:53.646信息18200---[Thread-2]S.C.A.AnnotationConfig
Spring批处理作业与flatfileitemreader(从csv读取)、processor(更新adwords api提要详细信息,对于csv文件中的每个记录(大约有40条记录),这一步大约需要40秒)和正在更新DB中记录的定制writer一起使用。 web.xml