该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 spring-cloud-task 5.0.0spring-doc.cadn.net.cn

Batch

本节将更详细介绍 Spring Cloud Task 与 Spring 的集成 批。跟踪作业执行与其所属任务之间的关联 执行。spring-doc.cadn.net.cn

将作业执行与执行任务关联

Spring Boot 提供了在 Spring Boot Uber jar 内执行批处理作业的设施。 Spring Boot 对此功能的支持允许开发者执行多个批处理作业 在那个执行之中。Spring Cloud Task提供了关联执行的功能 一个作业(作业执行)与任务的执行,因此可以追溯到一个任务的执行 其他。spring-doc.cadn.net.cn

Spring Cloud Task通过使用以下方式实现此功能TaskBatchExecutionListener. 默认情况下, 该监听器在任何同时拥有 Spring Batch 作业的上下文中自动配置 配置(通过拥有 类型的豆子工作在上下文中定义)以及Spring-cloud-task-batchJar on the classpath。监听者被注入所有工作 符合这些条件。spring-doc.cadn.net.cn

覆盖 TaskBatchExecutionListener

以防止监听器被注入当前中的任何批处理作业 上下文中,你可以使用标准的 Spring Boot 机制禁用自动配置。spring-doc.cadn.net.cn

如果只让监听者在上下文中被注入特定作业,可以覆盖batchTaskExecutionListenerBeanPostProcessor并提供工作豆ID列表,如图所示 以下示例:spring-doc.cadn.net.cn

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活动”部分详细介绍了这一功能。spring-doc.cadn.net.cn

批处理作业退出代码

所述,春云任务 应用程序支持记录任务执行的退出代码。然而, 在任务中运行春季批处理作业的情况,无论该批处理作业如何 执行完成后,使用默认时任务结果总是为零 批次/启动行为。请记住,任务是一个启动应用程序,退出代码 从任务返回的过程与启动应用程序相同。 要覆盖此行为,允许任务在 batch job 返回 BatchStatus失败设置Spring.cloud.task.batch.fail-on-job-failuretrue.然后是出口代码 可以是1(默认值),也可以基于指定出口代码生成器)spring-doc.cadn.net.cn

该功能使用了新的应用运行者取代了Spring提供的 靴子。默认情况下,它配置的顺序是相同的。不过,如果你想自定义 顺序是应用运行者运行时,你可以通过设置 来设置它的顺序spring.cloud.task.batch.applicationRunnerOrder财产。要让你的任务返回 基于批处理作业结果的退出代码,你需要自己写命令线跑者.spring-doc.cadn.net.cn