我需要对两个不同的数据库执行数据库操作,如下所示。
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
来实现吗?
答案 0 :(得分:1)
CompositeItemWriter是您所需要的。它使您可以编写委托编写器,以将项目写入多个目的地。
当您的委托编写者为ItemStream
(显然是您的情况)时,您需要在步骤中将其注册为流,以便正确调用来自ItemStream
接口的回调方法。在步骤生命周期的必要时间点(或简而言之,以便正确履行其ItemStream
合同)。您可以在参考文档的Registering ItemStream with a Step部分中找到更多详细信息。
希望这会有所帮助。