Spring Batch - Retry
참고 사이트 : http://www.egovframe.org/wiki/doku.php?id=egovframework:rte2:brte:batch_core:skip_repeat_retry
Dead lock에 대한 retry 관련
<bean id="batchRetryPolicy" class="org.springframework.batch.retry.policy.ExceptionClassifierRetryPolicy">
<property name="policyMap">
<map>
<entry key="org.springframework.dao.DataAccessResourceFailureException">
<bean class="org.springframework.batch.retry.policy.SimpleRetryPolicy">
<property name="maxAttempts" value="20" />
</bean>
</entry>
<entry key="org.springframework.dao.DeadlockLoserDataAccessException">
<bean class="org.springframework.batch.retry.policy.SimpleRetryPolicy">
<property name="maxAttempts" value="20" />
</bean>
</entry>
</map>
</property>
</bean>
<bean id="batchRetryTemplate" class="org.springframework.batch.retry.support.RetryTemplate">
<property name="retryPolicy" ref="batchRetryPolicy"></property>
<property name="backOffPolicy" >
<bean class="org.springframework.batch.retry.backoff.FixedBackOffPolicy">
<property name="backOffPeriod" value="8000" />
</bean>
</property>
</bean>
<bean id="batchRetryAdvice" class="org.springframework.batch.retry.interceptor.RetryOperationsInterceptor">
<property name="retryOperations" ref="batchRetryTemplate"></property>
</bean>
<aop:config>
<aop:pointcut id="launching" expression="execution(* org.springframework.batch.item.support.CompositeItemWriter.write(..))"/>
<aop:advisor pointcut-ref="launching" advice-ref="batchRetryAdvice" order="-1"/>
</aop:config>
1. retry를 수행할 Exception 지정
2. backOffPolicy는 wait를 지정 할 수 있음..
3. aop를 CompositeItemWriter.write에 반영 (composite이라 ... retry범위가 애매해서 지정함)
댓글
댓글 쓰기