OpenFeign タイムアウト設定:インターフェースごとの設定方法

OpenFeignを使用してAPIを呼び出す際、Feignの設定でAPIのタイムアウト時間を設定することができます。以下の手順でAPIのタイムアウト時間を設定できます。

  1. Feignクライアントの構成クラスを作成し、FeignClientSpecificationクラスを継承し、applyメソッドをオーバーライドしてタイムアウト時間を設定します。
import feign.Client;
import feign.Client.Default;
import feign.Client.Default.DefaultClientConfig;
import feign.Feign;
import feign.Request;
import feign.Request.Options;
import feign.RequestTemplate;
import feign.codec.Decoder;

public class MyFeignClientConfiguration extends DefaultClientConfig {

    @Override
    public Client apply(Client client) {
        return new Client() {
            private final Client delegate = client;

            @Override
            public Response execute(Request request, Options options) throws IOException {
                // 设置超时时间为10秒
                options = options.toBuilder().connectTimeout(10000)
                        .readTimeout(10000).build();
                return delegate.execute(request, options);
            }
        };
    }
}
  1. Feignインターフェースに@FeignClientアノテーションを追加し、configurationプロパティを前のステップで作成したFeignクライアント設定クラスに指定します。
@FeignClient(name = "my-service", configuration = MyFeignClientConfiguration.class)
public interface MyFeignClient {

    @GetMapping("/api/someEndpoint")
    String callSomeEndpoint();
}

上記の手順に従うことで、OpenFeignでのインターフェースのタイムアウト時間を設定することができます。

bannerAds