【问题标题】:CompositeItemWriter skip second writer if first one fails如果第一个写入器失败,CompositeItemWriter 会跳过第二个写入器
【发布时间】:2021-10-18 17:18:17
【问题描述】:

在我的用例中,我的 itemWriter 会将 XML 写入文件系统,之后我想将表示形式插入到表中。

public CompositeItemWriter<T> compositeItemWriter(){
    CompositeItemWriter writer = new CompositeItemWriter();
    writer.setDelegates(Arrays.asList(fileWriter(), dbWriter()));
    return writer;
}

如果流中的对象未正确保存到文件中,则可以使用跳过策略跳过它,我可能会将失败的对象以日志的形式保存在某处。
但是,dbWriter 必须不将此实体写入 db,以防万一。

那么如果第一个失败,我们如何使用复合编写器跳过第二个项目编写器?

【问题讨论】:

    标签: java spring-boot spring-batch


    【解决方案1】:

    根据我在以下线程上阅读的内容,我想要的行为似乎是默认行为:

    Spring-Batch How skip exceptions works for composite writers

    我假设 itemWriters 默认会并行运行。不知道他们为什么不这样做,但它非常适合我的用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 2013-04-17
      • 1970-01-01
      相关资源
      最近更新 更多