我使用spring批处理将数据保存到DB中。 我的情况是,如果它们是错误或错误记录,我必须跳过进程中的记录。假设我有500条记录,并且提交间隔为50.如果我在第40条记录中出现错误,那么只有该记录必须被跳过,其余的记录应该保留在DB中。我已经实现了跳过文件的跳过机制。
这是我要跳过的代码。此代码正在跳过整个文件。
<batch:step id="SlavePromotion">
<batch:tasklet>
<batch:chunk reader="promotionFileXmlReader" writer="dbPromotionWriter"
commit-interval="50" skip-limit="10">
<batch:skippable-exception-classes>
<batch:include class="org.springframework.batch.item.file.FlatFileParseException"/>
<batch:include class="org.springframework.batch.core.step.skip.SkipException"/>
<batch:include class="org.springframework.jdbc.UncategorizedSQLException"/>
<batch:include class="org.springframework.dao.DuplicateKeyException"/>
<batch:include class="org.springframework.dao.EmptyResultDataAccessException"/>
</batch:skippable-exception-classes>
</batch:chunk>
</batch:tasklet>
</batch:step>
我在源文件夹中有两个xml文件。
file-1
<Root>
<>Child1</>
<>Child2</>
<>Child3</>
</Root>
file-2
<Root>
<>Child4</>
<>Child5</>
<>Child6</>
</Root>
我将提交间隔保持为&#34; 1&#34;。当我处理文件,读者到作者,我的child2记录文件是重复记录。因此,它应跳过第二条记录并继续使用child3。