我有一种情况,我必须对2个不同的数据库执行DB操作,如下所示。
stepBuilderFactory.get("some text")
.<POJO,POJO>chunk(200)
.reader(dataReader)
.writer(writeToDB1)
.writer(writeToDB2)
.faultTolerant()
.skipLimit(10)
.skip(DataAccessException.class)
.build();只有第二个编写器被执行,忽略了第一个编写器。这可以使用Spring Batch 3.x和Spring Boot 1.5.x来实现吗
发布于 2019-01-16 17:23:30
CompositeItemWriter就是您所需要的。它允许您编写委托编写器,以便将项目写入多个目的地。
当您的委托编写者是ItemStream时(这显然就是您的情况),您需要在步骤中将它们注册为流,以便在步骤生命周期的必要点正确调用它们来自ItemStream接口的回调方法(或者简而言之,以便正确遵守它们的ItemStream约定)。您可以在参考文档的Registering ItemStream with a Step部分中找到有关这方面的更多详细信息。
希望这能有所帮助。
https://stackoverflow.com/questions/54205849
复制相似问题