代码之家  ›  专栏  ›  技术社区  ›  riorio

Spring批量作业存储库位置和缩放

  •  0
  • riorio  · 技术社区  · 6 年前

    this article 我们可以学到 Spring-Batch 在某些SQL存储库中保留作业的状态。

    this article 我们可以了解到 JobRepository 可以配置-可以在内存中,也可以是远程数据库。

    所以如果我们需要的话 规模 批处理作业,我们应该运行几个不同的春季批处理吗? JAR s,所有配置都使用相同的共享数据库以保持同步?

    这是正确的模式/架构吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Mahmoud Ben Hassine    6 年前

    是的,就是这样。当您从不同的物理节点启动同一个作业时,可能会发生的问题是您可以创建同一个作业实例两次。在这种情况下,当重新启动失败的执行时,Spring批处理将不知道要拾取哪个实例。共享作业存储库充当一种保护措施来防止这种并发问题。

    由于底层数据库的事务处理能力,作业存储库实现了这种同步。这个 IsolationLevelForCreate 可以设置为积极值( SERIALIZABLE 为避免上述问题。