RetryConfig.java 1 KB
package com.infoloop.tianting.config;

import org.springframework.context.annotation.Bean;
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.retry.backoff.ExponentialBackOffPolicy;
import org.springframework.retry.policy.SimpleRetryPolicy;
import org.springframework.retry.support.RetryTemplate;

@EnableRetry
public class RetryConfig {

    @Bean
    public RetryTemplate retryTemplate() {
        final var retryTemplate = new RetryTemplate();
        final var retryPolicy = new SimpleRetryPolicy();
        retryPolicy.setMaxAttempts(3);//设置最大重试次数

        final var backOffPolicy = new ExponentialBackOffPolicy();
        backOffPolicy.setInitialInterval(5000);//设置初始重试间隔
        backOffPolicy.setMultiplier(2);//设置重试间隔倍数
        backOffPolicy.setMaxInterval(10000);//设置最大重试间隔

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