有没有办法 MySQLMaxValueIncrementer 在 spring 批处理中连接到多个数据源

问题描述

我的项目中有 2 个数据源 datasource1 连接到 datahost1 并且 datasource2 连接到 datahost 2。我有 2 个作业为 datasource1 和 datasource 2 触发,现在 MysqLMaxValueIncrementer 应该连接到 datasource1 以从 datasource1 和第二个作业获取一个增量 Id它应该来自第二个数据源。由于只有一个 MysqLMaxValueIncrementer,它连接到单个数据源。有什么办法可以通过动态说在运行时根据条件使用数据源来解决这个问题

解决方法

JobRepository 可以配置为单个 DataFieldMaxValueIncrementer(通过 DataFieldMaxValueIncrementerFactory)。

如果您想对两个作业使用相同的 JobRepository,那么您需要提供一个能够处理两个数据源的自定义增量器。

否则,您需要为每个作业创建一个单独的 JobRepository

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...