Използвам шаблон за повторен опит по-долу за изключение, което може да възникне. Блокът retryTemplate.execute никога не се извиква. Дефинирах bean-а за повторен опит, както е показано по-долу. Не съм сигурен дали това е правилният начин. Нов съм в Java и Spring. Всяка помощ ще бъде оценена.
public class checkUser{
RetryTemplate retryTemplate;
public checkUser(){}
public checkUser(RetryTemplate retryTemplate){
this.retryTemplate = retryTemplate;}
private RetryTemplate retryConfig() {
RetryTemplate retryTemplate = new RetryTemplate();
FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy();
fixedBackOffPolicy.setBackOffPeriod(2000l);
retryTemplate.setBackOffPolicy(fixedBackOffPolicy);
SimpleRetryPolicy retryPolicy = new SimpleRetryPolicy();
retryPolicy.setMaxAttempts(2);
retryTemplate.setRetryPolicy(retryPolicy);
return retryTemplate;
}
private void checkGroup() throws Exception {
retryTemplate = retryConfig();
try {
retryTemplate.execute(new RetryCallback<Object>() {
@Override
public Object doWithRetry(RetryContext retryContext) throws Exception {
if (retryContext.getRetryCount() < 2) { // unexpected disconnection
throw new RuntimeException("retry exception");
}
//do something
}
return null;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
дефиниран боб както по-долу:
<bean id="checkUser"
class="com.checkUser">
<constructor-arg index="1" value="${retryTemplate}" />
</bean>
<bean id = "retryTemplate" class="com.checkUser">
</bean>