跳过流程记录

时间:2017-06-14 07:43:42

标签: java spring-batch

我使用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。

0 个答案:

没有答案