配置作业操作员
最基本的实现作业操作员接口是任务执行者作业操作员. 它只需要一个依赖关系:aJobRepository. 所有其他依赖,比如职位注册,MeterRegistry,事务管理器,等为可选。Spring Batch 提供工厂豆子为了简化该作符的配置:JobOperatorFactoryBean. 这个工厂豆创建了一个围绕任务执行者作业操作员以确保其所有公共方法都在事务中执行。
-
Java
-
XML
以下示例展示了如何配置任务执行者作业操作员在爪哇语中:
Java 配置
...
@Bean
public JobOperatorFactoryBean jobOperator(JobRepository jobRepository) {
JobOperatorFactoryBean jobOperatorFactoryBean = new JobOperatorFactoryBean();
jobOperator.setJobRepository(jobRepository);
return jobOperatorFactoryBean;
}
...
以下示例展示了如何配置任务执行者作业操作员以XML形式表示:
XML 配置
<bean id="jobOperator" class="org.springframework.batch.core.launch.support.JobOperatorFactoryBean">
<property name="jobRepository" ref="jobRepository" />
</bean>
一旦获得 JobExecution,它会传递给执行方法工作,最终返回作业执行致呼叫者,因为下图显示:
图1。作业Starters序列
该序列简单明了,从调度器启动时效果良好。 然而 当尝试从HTTP请求启动时,就会出现问题。在这种情况下,启动需要异步完成,以便任务执行者作业操作员立即返回其 访客。 这是因为保持HTTP请求开启时间不佳长时间运行进程(如批处理作业)所需的时间。下图展示了一个示例序列:
图2。异步作业Starters序列
你可以配置任务执行者作业操作员为实现此情景,通过配置任务执行者.
-
Java
-
XML
以下 Java 示例配置了一个任务执行者作业操作员立即返回:
Java 配置
@Bean
public JobOperatorFactoryBean jobOperator(JobRepository jobRepository) {
JobOperatorFactoryBean jobOperatorFactoryBean = new JobOperatorFactoryBean();
jobOperator.setJobRepository(jobRepository);
jobOperator.setTaskExecutor(new SimpleAsyncTaskExecutor());
return jobOperatorFactoryBean;
}
以下XML示例配置为任务执行者作业操作员立即返回:
XML 配置
<bean id="jobOperator" class="org.springframework.batch.core.launch.support.JobOperatorFactoryBean">
<property name="jobRepository" ref="jobRepository" />
<property name="taskExecutor">
<bean class="org.springframework.core.task.SimpleAsyncTaskExecutor" />
</property>
</bean>
你可以使用任何Spring的实现任务执行者用于控制作业异步的接口 执行。