配置和运行作业
在 域部分 中,讨论了整体架构设计,并使用以下图表作为指南:
图1. 批处理刻板印象
虽然 Job
对象看起来像是步骤的简单容器,但您需要了解许多配置选项。此外,您还必须考虑有关如何运行 Job
以及在运行期间如何存储其元数据的许多选项。本章解释了 Job
的各种配置选项和运行时注意事项。
小节摘要
📄️ 配置作业
Job接口有多种实现方式。然而,这些实现方式被抽象在所提供的构建器(用于Java配置)或XML命名空间(用于基于XML的配置)之后。以下示例展示了Java和XML配置:
📄️ Java 配置
Spring 3 带来了使用 Java 而不是 XML 配置应用程序的能力。从 Spring Batch 2.2.0 开始,您可以使用相同的 Java 配置来配置批处理作业。基于 Java 的配置有三个组件:@EnableBatchProcessing 注解和两个构建器。
📄️ 配置 JobRepository
正如前面所述,JobRepository 用于执行 Spring Batch 中各种持久化领域对象的基本 CRUD 操作,例如 JobExecution 和 StepExecution。它是许多主要框架功能所必需的,例如 JobLauncher、Job 和 Step。
📄️ 配置 JobLauncher
Java
📄️ 运行作业
至少,启动批处理任务需要两件事:要启动的 Job 和一个 JobLauncher。这两者可以包含在同一个上下文中,也可以包含在不同的上下文中。例如,如果从命令行启动任务,则为每个 Job 实例化一个新的 JVM。因此,每个任务都有自己的 JobLauncher。然而,如果在 Web 容器内运行,并且在 HttpRequest 范围内,通常只有一个 JobLauncher(配置为异步任务启动),多个请求会调用它来启动它们的任务。
📄️ 高级元数据使用
到目前为止,已经讨论了 JobLauncher 和 JobRepository 接口。它们共同代表了作业的简单启动和批处理域对象的基本 CRUD 操作: