首页 文章

Spring Batch Restart - 没有选择正确的行

提问于
浏览
0

我有一个具有以下属性的spring批处理作业:

commit-interval: 25.
    skip-limit of 3.

在我的集成测试中,我注入了一个假的编写器,它将抛出可跳过的异常,而这又会注入一个id列表,这将导致异常被抛出 .

在我的测试之前,我创建了135行 . 我配置那些行

"9", "11", "44", "51", "70"

将是导致ItemWriter抛出异常的行 .

一切都在第一次运行时运行良好,正如预期的那样,在第51行的50次提交之后,作业失败,或者更确切地说,当作者中的“某事”检测到现在已超过3的限制的可跳过异常时,作业也会失败 . ,我断言9,11和44是在可跳过的听众中注册的,我希望如此 .

我意识到批处理作业在事务失败之前没有单独包装事务,就像id为9,11和44那样,因为它已经知道达到了跳过限制 .

但是,当我重新启动作业时,起始行是74 - 不是51,正如我所料 .

因此从51到73被跳过?

我无法想出这个 . 或者为什么它会跳过完全失败的块 .

任何帮助,将不胜感激 .

大卫 .

1 回答

相关问题