对于最新稳定版本,请使用Spring Batch Documentation 6.0.0spring-doc.cadn.net.cn

配置 JobLauncher

当你使用@EnableBatchProcessing一个职位注册为你提供。 本节将介绍如何配置自己的设备。spring-doc.cadn.net.cn

最基本的实现JobLauncher接口是TaskExecutorJobLauncher. 它唯一需要的依赖是JobRepository(需要获得处决)。spring-doc.cadn.net.cn

以下示例展示了一个TaskExecutorJobLauncher在爪哇语中:spring-doc.cadn.net.cn

Java 配置
...
@Bean
public JobLauncher jobLauncher() throws Exception {
	TaskExecutorJobLauncher jobLauncher = new TaskExecutorJobLauncher();
	jobLauncher.setJobRepository(jobRepository);
	jobLauncher.afterPropertiesSet();
	return jobLauncher;
}
...

以下示例展示了一个TaskExecutorJobLauncher以XML形式表示:spring-doc.cadn.net.cn

XML 配置
<bean id="jobLauncher"
      class="org.springframework.batch.core.launch.support.TaskExecutorJobLauncher">
    <property name="jobRepository" ref="jobRepository" />
</bean>

一旦获得 JobExecution,它就会传递给 执行方法工作,最终返回作业执行对呼叫者而言,当 下图显示:spring-doc.cadn.net.cn

作业启动程序序列
图1。作业启动程序序列

该序列简单明了,从调度器启动时效果良好。然而 当尝试从HTTP请求启动时就会出现问题。在这种情况下,发射 需要异步完成,以便TaskExecutorJobLauncher立即返回其 访客。这是因为保持 HTTP 请求未开启是不好的做法 长周期进程(如批处理作业)所需的时间。下图显示 示例序列:spring-doc.cadn.net.cn

异步作业启动程序序列
图2。异步作业启动程序序列

你可以配置TaskExecutorJobLauncher为实现此情景,通过配置任务执行者.spring-doc.cadn.net.cn

以下 Java 示例配置了一个TaskExecutorJobLauncher立即返回:spring-doc.cadn.net.cn

Java 配置
@Bean
public JobLauncher jobLauncher() {
	TaskExecutorJobLauncher jobLauncher = new TaskExecutorJobLauncher();
	jobLauncher.setJobRepository(jobRepository());
	jobLauncher.setTaskExecutor(new SimpleAsyncTaskExecutor());
	jobLauncher.afterPropertiesSet();
	return jobLauncher;
}

以下XML示例配置为TaskExecutorJobLauncher立即返回:spring-doc.cadn.net.cn

XML 配置
<bean id="jobLauncher"
      class="org.springframework.batch.core.launch.support.TaskExecutorJobLauncher">
    <property name="jobRepository" ref="jobRepository" />
    <property name="taskExecutor">
        <bean class="org.springframework.core.task.SimpleAsyncTaskExecutor" />
    </property>
</bean>

你可以使用任何Spring实现任务执行者用于控制作业异步的接口 执行。spring-doc.cadn.net.cn