26 Temmuz 2021 Pazartesi

SpringRetry SimpleRetryPolicy Sınıfı

Giriş
Şu satırı dahil ederiz
import org.springframework.retry.policy.SimpleRetryPolicy;
Açıklaması şöyle.
RetryPolicy determines when an operation should be retried. A SimpleRetryPolicy is used to retry a fixed number of times.
constructor
Örnek
Şöyle yaparız
public class PayApiRetryTemplate extends RetryTemplate implements InitializingBean {

  private final PayApiConnProp prop;
  private final Class<? extends ApiException>[] exceptions;

    @Override
    public void afterPropertiesSet() throws Exception {
        this.setBackOffPolicy(...);
        this.setRetryPolicy(retryPolicy());
    }

   
  private Map<Class<? extends Throwable>, Boolean> includedExceptions() {
    Map<Class<? extends Throwable>, Boolean> includedExceptions = new HashMap<>();
    for (Class<? extends ApiException> exception : this.exceptions) {
      includedExceptions.put(exception, true);
    }
    return includedExceptions;
  }

  private RetryPolicy retryPolicy() {
    return new SimpleRetryPolicy(this.prop.getRetry().getMaxAttempts(), 
      includedExceptions());
  }
}
setMaxAttempts metodu
Örnek
Şöyle yaparız
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.retry.backoff.FixedBackOffPolicy;
import org.springframework.retry.policy.SimpleRetryPolicy;
import org.springframework.retry.support.RetryTemplate;

@SpringBootApplication
@EnableRetry
@EnableJpaRepositories(basePackages = "com.betterjavacode.retrydemo.daos")
public class RetrydemoApplication {

  @Bean
  public RetryTemplate retryTemplate(){
    RetryTemplate retryTemplate = new RetryTemplate();

    FixedBackOffPolicy backOffPolicy = new FixedBackOffPolicy();
    backOffPolicy.setBackOffPeriod(100);

    SimpleRetryPolicy simpleRetryPolicy = new SimpleRetryPolicy();
    simpleRetryPolicy.setMaxAttempts(2);

    retryTemplate.setRetryPolicy(simpleRetryPolicy);
    retryTemplate.setBackOffPolicy(backOffPolicy);
    return retryTemplate;
  }
}

Hiç yorum yok:

Yorum Gönder