使用Chunk Oriented Processing在Spring批量远程分块中实现SkippableTasklet

时间:2017-12-13 08:19:51

标签: java spring spring-batch

我目前正在使用Spring Batch并希望使用远程分块。

我使用面向块的处理,使用Item Reader,Item Processor和Item Writer,并希望实现skip。

我在此question中读到了告诉我要创建SkippableTasklet但我有点混淆如何实施protected abstract void run(JobParameters jobParameters) throws Exception;

如何在这个远程分块实现中实现skip?

1 个答案:

答案 0 :(得分:1)

有几种方法可以处理可跳过的异常。 我这样写了

<batch:step id="sendEmailStep">
    <batch:tasklet>
        <bean class="com.myproject.SendEmail" scope="step" autowire="byType">
            <batch:skippable-exception-classes>
                <batch:include class="org.springframework.mail.MailException" />
            </batch:skippable-exception-classes>
        </bean>
    </batch:tasklet>
    <batch:listeners>
        batch:listener ref="skippableListener'/>
    </batch:listeners>
</batch:step>
<bean id="skippableListener" class="SkippableListener/>

public class SkippableListener implements SkipListener
{
   void onSkipInProcess(T item, java.lang.Throwable t){
   //Write your logic
   };
   void onSkipInRead(java.lang.Throwable t){
   //Write your logic
   };
   void onSkipInWrite(S item, java.lang.Throwable t){
   //Write your logic
   };
}