我目前正在使用Spring Batch并希望使用远程分块。
我使用面向块的处理,使用Item Reader,Item Processor和Item Writer,并希望实现skip。
我在此question中读到了告诉我要创建SkippableTasklet
但我有点混淆如何实施protected abstract void run(JobParameters jobParameters) throws Exception;
如何在这个远程分块实现中实现skip?
答案 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
};
}