配置 JobLauncher
-
Java
-
XML
当您使用 时,将为您提供 a。
本节介绍如何配置您自己的@EnableBatchProcessing
JobRegistry
该接口最基本的实现是 .
它唯一需要的依赖项是 a (需要获取执行)。JobLauncher
TaskExecutorJobLauncher
JobRepository
-
Java
-
XML
以下示例显示了 Java 中的一个:TaskExecutorJobLauncher
Java 配置
...
@Bean
public JobLauncher jobLauncher() throws Exception {
TaskExecutorJobLauncher jobLauncher = new TaskExecutorJobLauncher();
jobLauncher.setJobRepository(jobRepository);
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
...
以下示例显示了 XML 格式:TaskExecutorJobLauncher
XML 配置
<bean id="jobLauncher"
class="org.springframework.batch.core.launch.support.TaskExecutorJobLauncher">
<property name="jobRepository" ref="jobRepository" />
</bean>
获取 JobExecution 后,它会传递给
execute 方法,最终将 返回给调用者,作为
下图显示了:Job
JobExecution
图 1.Job Launcher 序列
该序列简单明了,从计划程序启动时效果很好。然而
尝试从 HTTP 请求启动时出现问题。在这种情况下,启动
需要异步完成,以便立即返回到其
访客。这是因为让 HTTP 请求保持打开状态并不是一个好的做法
长时间运行的进程(如批处理作业)所需的时间。下图显示了
示例序列:TaskExecutorJobLauncher
图 2.异步 Job Launcher 序列
您可以通过配置 来配置 以允许此方案。TaskExecutorJobLauncher
TaskExecutor
-
Java
-
XML
下面的 Java 示例将 a 配置为立即返回:TaskExecutorJobLauncher
Java 配置
@Bean
public JobLauncher jobLauncher() {
TaskExecutorJobLauncher jobLauncher = new TaskExecutorJobLauncher();
jobLauncher.setJobRepository(jobRepository());
jobLauncher.setTaskExecutor(new SimpleAsyncTaskExecutor());
jobLauncher.afterPropertiesSet();
return jobLauncher;
}
下面的 XML 示例将 a 配置为立即返回:TaskExecutorJobLauncher
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 接口的任何实现来控制 Job 的异步方式
执行。TaskExecutor