FeignConfig.java 924 Bytes
package com.ecommerce.payment.config;

import feign.Logger;
import feign.Request;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

@Configuration
public class FeignConfig {
    
    @Bean
    public Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }
    
    @Bean
    public Request.Options feignOptions() {
        return new Request.Options(
            5, TimeUnit.SECONDS,   // connectTimeout
            10, TimeUnit.SECONDS,  // readTimeout
            true                   // followRedirects
        );
    }
    
    @Bean
    public Retryer feignRetryer() {
        return new Retryer.Default(
            100L,                  // period
            TimeUnit.SECONDS.toMillis(1L), // maxPeriod
            3                      // maxAttempts
        );
    }
}