Spring 批处理集成
许多 Spring Batch 用户可能会遇到超出 Spring Batch 范围的需求,但这些需求可以通过使用 Spring Integration 高效且简洁地实现。相反,Spring Integration 用户也可能遇到 Spring Batch 的需求,并需要一种有效的方法来集成这两个框架。在这种情况下,会出现一些模式和用例,而 Spring Batch Integration 就是为了解决这些需求。
Spring Batch 和 Spring Integration 之间的界限并不总是清晰的,但有两条建议可以帮助理解:考虑粒度和应用常见模式。本节中描述了一些这些常见模式。
在批处理过程中添加消息传递功能可以实现操作的自动化,同时也可以分离和策略化关键问题。例如,一条消息可能触发一个任务的执行,然后发送这条消息可以通过多种方式公开。或者,当一个任务完成或失败时,该事件可能触发发送一条消息,而这些消息的消费者可能有与应用程序本身无关的操作关注点。消息传递还可以嵌入到任务中(例如,通过通道读取或写入待处理的项目)。远程分区和远程分块提供了在多个工作节点之间分配工作负载的方法。
本节涵盖了以下关键概念:
小节摘要
📄️ 命名空间支持
专用的 XML 命名空间支持在 Spring Batch Integration 1.3 版本中被添加,目标是提供更简单的配置体验。要使用该命名空间,请将以下命名空间声明添加到您的 Spring XML 应用程序上下文文件中:
📄️ 通过消息启动批处理作业
在使用核心 Spring Batch API 启动批处理作业时,基本上有两种选择:
📄️ 任务启动网关的可用属性
任务启动网关具有以下属性,您可以设置这些属性来控制一个任务:
📄️ 子元素
当此网关从 PollableChannel 接收消息时,您必须提供一个全局默认的轮询器(Poller),或者为作业启动网关提供一个轮询器子元素。