Java Spring批处理JobRepository位置和扩展

Java Spring批处理JobRepository位置和扩展,java,spring,spring-batch,Java,Spring,Spring Batch,从中我们可以了解到,springbatch在一些SQL存储库中保存作业的状态 从中我们可以了解到,JobRepository的位置可以配置—可以在内存中,也可以是远程数据库 因此,如果我们需要扩展一个批处理作业,我们是否应该运行几个不同的Spring批处理JARs,所有这些都配置为使用相同的共享数据库以保持同步 这是正确的模式/架构吗 是的,这就是路。从不同的物理节点启动同一作业时可能出现的问题是,可以创建同一作业实例两次。在这种情况下,当重新启动失败的执行时,SpringBatch将不知道拾取

从中我们可以了解到,
springbatch
在一些SQL存储库中保存作业的状态

从中我们可以了解到,
JobRepository
的位置可以配置—可以在内存中,也可以是远程数据库

因此,如果我们需要扩展一个批处理作业,我们是否应该运行几个不同的Spring批处理
JAR
s,所有这些都配置为使用相同的共享数据库以保持同步


这是正确的模式/架构吗

是的,这就是路。从不同的物理节点启动同一作业时可能出现的问题是,可以创建同一作业实例两次。在这种情况下,当重新启动失败的执行时,SpringBatch将不知道拾取哪个实例。共享作业存储库可作为防止此类并发问题的保护措施

由于底层数据库的事务功能,作业存储库实现了这种同步。可以将设置为激进值(
SERIALIZABLE
是默认值),以避免上述问题