【发布时间】:2016-06-07 04:05:12
【问题描述】:
我想在 xml 中定义一个重试限制,如果对特定项目的任何读/处理/写操作失败,它将重试定义的次数。我明白了这个概念,但我没有让它在代码中工作。
我在项目中也有所有适当的 maven 支持依赖项。
这里是步骤的xml定义:
<batch:step id="step1" >
<batch:tasklet>
<batch:chunk reader="myReader" processor="myProcessor" writer="myWriter" commit-interval="10" **retry-limit="3"**>
<batch:retryable-exception-classes>
<batch:include class="java.lang.ArithmeticException"/>
</batch:retryable-exception-classes>
</batch:chunk>
</batch:tasklet>
</batch:step>
我正在使用 JdbcCursorItemReader 从数据库中读取数据。在映射器中,我试图手动引发错误(java.lang.ArithmeticException: / by zero)只是为了检查它是如何工作的。我的理解是,当它遇到“/ by zero”错误时,它应该重试 3 次并最终失败,但我认为它不会退休。我这里有什么遗漏吗?
【问题讨论】:
-
你能在你配置重试的地方显示代码
-
对不起。这是我关于堆栈溢出的第一个问题。更正了问题以显示代码。
-
您希望准确看到什么(记录消息?您是否单步执行了代码?)您看到了什么?
-
我想看看一些日志说“尝试重试”之类的。我启用了调试日志记录,但我没有看到任何类似的东西。如果它重试,将再次出现错误。我想在日志中查看这些错误。
标签: java spring-batch