在运行时具有多个数据源的spring批处理

时间:2015-11-18 20:56:04

标签: java datasource spring-batch

我必须遍历表中的某些已配置数据库。其中每条记录指定要读取的模式。所以我们必须轮询表并适当地运行工作。

认为使用Spring批处理(JdbcPagingItemReader)从所有Schema的配置中读取数据。如果我必须配置它,我怎么能用Spring Batch做到?

我应该为每个数据库读取多个不同读取器的作业,或者有什么方法可以在运行时发送数据源以便Spring Batch从中读取数据?

如何管理Single Spring Batch的多个数据库。如果没有,那么数据库抓取(或收获)还有其他建议吗?

2 个答案:

答案 0 :(得分:1)

如果您只是运行查询以获取某些数据然后运行其他查询,那么这实际上并不符合Spring Batch所做的事情。这只是标准的JDBC或JPA类型的DAO /服务设置。您可以使用Quartz或Spring Scheduler为您检查表格时设置CRON值。

答案 1 :(得分:1)

使用Spring Batch有两种解决方案:

  • 在运行时通过DataSource传递JobParameters属性(网址,用户名,密码....)。这意味着第一次读取的读取逻辑(告诉您要读取的内容)必须在作业外完成
  • 有一个有2个步骤的工作,第一个工作是"元数据"读取和存储结果JobExecutionContext,第二个使用先前在运行时存储的值进行实际读取