|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 spring-cloud-task 5.0.0! |
Batch
本节将更详细介绍 Spring Cloud Task 与 Spring 的集成 批。跟踪作业执行与其所属任务之间的关联 执行。
将作业执行与执行任务关联
Spring Boot 提供了在 Spring Boot Uber jar 内执行批处理作业的设施。 Spring Boot 对此功能的支持允许开发者执行多个批处理作业 在那个执行之中。Spring Cloud Task提供了关联执行的功能 一个作业(作业执行)与任务的执行,因此可以追溯到一个任务的执行 其他。
Spring Cloud Task通过使用以下方式实现此功能TaskBatchExecutionListener.
默认情况下,
该监听器在任何同时拥有 Spring Batch 作业的上下文中自动配置
配置(通过拥有 类型的豆子工作在上下文中定义)以及Spring-cloud-task-batchJar on the classpath。监听者被注入所有工作
符合这些条件。
覆盖 TaskBatchExecutionListener
以防止监听器被注入当前中的任何批处理作业 上下文中,你可以使用标准的 Spring Boot 机制禁用自动配置。
如果只让监听者在上下文中被注入特定作业,可以覆盖batchTaskExecutionListenerBeanPostProcessor并提供工作豆ID列表,如图所示
以下示例:
public static TaskBatchExecutionListenerBeanPostProcessor batchTaskExecutionListenerBeanPostProcessor() {
TaskBatchExecutionListenerBeanPostProcessor postProcessor =
new TaskBatchExecutionListenerBeanPostProcessor();
postProcessor.setJobNames(Arrays.asList(new String[] {"job1", "job2"}));
return postProcessor;
}
| 你可以在Spring Cloud的样本模块中找到一个批处理示例应用 任务项目,在这里。 |
批处理信息消息
Spring Cloud Task 支持批处理作业发送信息消息。这 “Spring Session活动”部分详细介绍了这一功能。
批处理作业退出代码
如前所述,春云任务
应用程序支持记录任务执行的退出代码。然而,
在任务中运行春季批处理作业的情况,无论该批处理作业如何
执行完成后,使用默认时任务结果总是为零
批次/启动行为。请记住,任务是一个启动应用程序,退出代码
从任务返回的过程与启动应用程序相同。
要覆盖此行为,允许任务在
batch job 返回 BatchStatus 为失败设置Spring.cloud.task.batch.fail-on-job-failure自true.然后是出口代码
可以是1(默认值),也可以基于指定出口代码生成器)
该功能使用了新的应用运行者取代了Spring提供的
靴子。默认情况下,它配置的顺序是相同的。不过,如果你想自定义
顺序是应用运行者运行时,你可以通过设置 来设置它的顺序spring.cloud.task.batch.applicationRunnerOrder财产。要让你的任务返回
基于批处理作业结果的退出代码,你需要自己写命令线跑者.