最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Feign Client超時時間設(shè)置不生效的解決方法

 更新時間:2025年04月08日 10:54:50   作者:ByteX  
這篇文章主要為大家詳細(xì)介紹了Feign Client 超時時間設(shè)置不生效的原因與解決方法,具有一定的的參考價值,希望對大家有一定的幫助

在使用Feign Client時,可以通過兩種方式來設(shè)置超時時間:

1.針對整個Feign Client設(shè)置超時時間

可以在Feign Client的配置類中通過修改Request.Options對象來設(shè)置超時時間。Request.Options對象有兩個屬性,connectTimeoutMillis用于設(shè)置連接超時時間,readTimeoutMillis用于設(shè)置讀取超時時間。

下面是一個示例:

@Configuration
public class FeignClientConfig {

    @Bean
    public Request.Options requestOptions() {
        return new Request.Options(5000, 5000);
    }

}

在上面的示例中,連接超時和讀取超時時間都設(shè)置為5000毫秒。

針對單個Feign接口方法設(shè)置超時時間

可以在Feign接口方法上使用@FeignClient注解的configuration屬性來指定一個配置類,然后在配置類中通過修改Request.Options對象來設(shè)置超時時間。

下面是一個示例:

@FeignClient(name = "example-client")
public interface ExampleClient {

    @GetMapping("/example")
    @Headers("Content-Type: application/json")
    @RequestLine("GET /example")
    void getExample(Request.Options options);

}

//自定義接口超時時間(20秒)
Request.Options options =new Request.Options(20, TimeUnit.SECONDS,20,TimeUnit.SECONDS,true);
// 執(zhí)行調(diào)用
exampleClient .getExample(options );

在上面的示例中,ExampleClient接口中的getExample()方法的超時時間被配置為20秒。

需要注意的是,F(xiàn)eign Client的超時時間設(shè)置只對請求的連接和讀取階段有效,對于響應(yīng)的處理時間是無效的。如果需要設(shè)置整個請求-響應(yīng)的超時時間,可以通過使用Hystrix或其他方式來實現(xiàn)。

不生效可能得原因

搜索一下項目里有沒有對Options 進行重寫,如下所示:

 @Bean
    public Options options() {
        return new Options();
    }

Options 類

public static class Options {
        private final int connectTimeoutMillis;
        private final int readTimeoutMillis;

        public Options(int connectTimeoutMillis, int readTimeoutMillis) {
            this.connectTimeoutMillis = connectTimeoutMillis;
            this.readTimeoutMillis = readTimeoutMillis;
        }

        public Options() {
            this(10000, 60000);
        }

        public int connectTimeoutMillis() {
            return this.connectTimeoutMillis;
        }

        public int readTimeoutMillis() {
            return this.readTimeoutMillis;
        }
    }

可以看到Options 類的默認(rèn)構(gòu)造函數(shù)里connectTimeout為10000ms,readTimeout為60000ms。你的配置文件里面的設(shè)置如果不生效可能就是被覆蓋了。

feign:
  client:
    config:
      default:
        connectTimeout: 5000
        readTimeout: 150000

1.我們需要強制重寫它才會生效

  @Primary
    @Bean
    public Request.Options requestOptions(ConfigurableEnvironment env) {
        String connectTime = env.getProperty("feign.client.config.default.connectTimeout");
        String readTime = env.getProperty("feign.client.config.default.readTimeout");
        if (connectTime != null && readTime != null) {
            Integer connectTimeout = Integer.valueOf(connectTime);
            Integer readTimeout = Integer.valueOf(readTime);
            return new Request.Options(connectTimeout, readTimeout);
        }
        return new Request.Options();
    }

2.單獨針對某個方法設(shè)置超時時間。

@FeignClient(name = "example-client")
public interface ExampleClient {

    @GetMapping("/example")
    @Headers("Content-Type: application/json")
    @RequestLine("GET /example")
    void getExample(Request.Options options,String params);

}

//自定義接口超時時間(20秒)
Request.Options options =new Request.Options(20, TimeUnit.SECONDS,20,TimeUnit.SECONDS,true);
// 執(zhí)行調(diào)用
exampleClient .getExample(options );

到此這篇關(guān)于Feign Client超時時間設(shè)置不生效的解決方法的文章就介紹到這了,更多相關(guān)Feign Client超時設(shè)置不生效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的HashSet、LinkedHashSet集合解析

    Java中的HashSet、LinkedHashSet集合解析

    這篇文章主要介紹了Java中的HashSet、LinkedHashSet集合解析,與HashSet不同的是,LinkedHashSet在內(nèi)部使用了一個雙向鏈表來維護元素的順序,因此它可以保持元素的插入順序,這使得LinkedHashSet在需要保持元素順序的場景下非常有用,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)分頁的幾種方法詳細(xì)解析

    Java實現(xiàn)分頁的幾種方法詳細(xì)解析

    這篇文章主要介紹了Java實現(xiàn)分頁的幾種方法詳細(xì)解析,在Java中想實現(xiàn)分頁功能有幾種常用的方法,今天我們就來詳細(xì)解析一下,文中提供了解決思路和部分實現(xiàn)代碼,需要的朋友可以參考下
    2023-11-11
  • springboot結(jié)合shiro實現(xiàn)身份認(rèn)證的實戰(zhàn)

    springboot結(jié)合shiro實現(xiàn)身份認(rèn)證的實戰(zhàn)

    本文主要介紹了springboot結(jié)合shiro實現(xiàn)身份認(rèn)證的實戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-09-09
  • Java 線程池的作用以及該如何使用

    Java 線程池的作用以及該如何使用

    這篇文章主要介紹了Java 線程池的作用以及該如何使用,幫助大家更好的理解和學(xué)習(xí)Java的相關(guān)知識,感興趣的朋友可以了解下
    2021-01-01
  • SpringBoot應(yīng)用內(nèi)存占用分析與優(yōu)化指南

    SpringBoot應(yīng)用內(nèi)存占用分析與優(yōu)化指南

    本文詳細(xì)分析了SpringBoot應(yīng)用內(nèi)存占用過高的原因,主要包括JVM堆內(nèi)存、元空間、線程棧內(nèi)存和直接內(nèi)存等,通過優(yōu)化Tomcat線程池配置、調(diào)整JVM參數(shù),并結(jié)合監(jiān)控機制,可以有效降低應(yīng)用內(nèi)存占用,提高性能和穩(wěn)定性,需要的朋友可以參考下
    2026-03-03
  • SpringBoot中的MongoTemplate的各種條件查詢示例詳解

    SpringBoot中的MongoTemplate的各種條件查詢示例詳解

    這篇文章主要介紹了SpringBoot中的MongoTemplate的各種條件查詢示例詳解,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借價值,需要的朋友參考下吧
    2024-01-01
  • Nacos源碼閱讀方法

    Nacos源碼閱讀方法

    這篇文章將會帶大家閱讀Nacos源碼以及教大家閱讀源碼的技巧,感興趣的朋友跟隨小編一起看看Nacos源碼閱讀方法
    2022-03-03
  • 基于RecyclerChart的KLine的繪制Scale詳解

    基于RecyclerChart的KLine的繪制Scale詳解

    這篇文章主要為大家詳細(xì)介紹了基于RecyclerChart實現(xiàn)KLine繪制Scale的相關(guān)資料,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • Java8中如何通過方法引用獲取屬性名詳解

    Java8中如何通過方法引用獲取屬性名詳解

    這篇文章主要給大家介紹了關(guān)于Java8中如何通過方法引用獲取屬性名的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java?HttpURLConnection類的disconnect方法與http長連接詳解

    java?HttpURLConnection類的disconnect方法與http長連接詳解

    這篇文章主要介紹了java?HttpURLConnection類的disconnect方法與http長連接,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論

永泰县| 南昌县| 阳山县| 都昌县| 商水县| 阿克陶县| 沅江市| 渝中区| 安龙县| 囊谦县| 行唐县| 府谷县| 剑川县| 邓州市| 开化县| 曲阳县| 宁强县| 南江县| 通许县| 深水埗区| 承德市| 昌吉市| 宜川县| 平昌县| 阜宁县| 凤庆县| 连江县| 丹寨县| 滕州市| 若羌县| 光泽县| 右玉县| 夏邑县| 大关县| 中阳县| 沅江市| 萨嘎县| 平阴县| 札达县| 肃南| 丹江口市|