OpenFeign タイムアウト設定:インターフェースごとの設定方法
OpenFeignを使用してAPIを呼び出す際、Feignの設定でAPIのタイムアウト時間を設定することができます。以下の手順でAPIのタイムアウト時間を設定できます。
- 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);
}
};
}
}
- Feignインターフェースに@FeignClientアノテーションを追加し、configurationプロパティを前のステップで作成したFeignクライアント設定クラスに指定します。
@FeignClient(name = "my-service", configuration = MyFeignClientConfiguration.class)
public interface MyFeignClient {
@GetMapping("/api/someEndpoint")
String callSomeEndpoint();
}
上記の手順に従うことで、OpenFeignでのインターフェースのタイムアウト時間を設定することができます。