亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Feign Client超時時間設置不生效的解決方法

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

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

1.針對整個Feign Client設置超時時間

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

下面是一個示例:

@Configuration
public class FeignClientConfig {

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

}

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

針對單個Feign接口方法設置超時時間

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

下面是一個示例:

@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的超時時間設置只對請求的連接和讀取階段有效,對于響應的處理時間是無效的。如果需要設置整個請求-響應的超時時間,可以通過使用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 類的默認構(gòu)造函數(shù)里connectTimeout為10000ms,readTimeout為60000ms。你的配置文件里面的設置如果不生效可能就是被覆蓋了。

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.單獨針對某個方法設置超時時間。

@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 );

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

相關文章

  • 詳解如何使用IntelliJ IDEA生成UML圖

    詳解如何使用IntelliJ IDEA生成UML圖

    在軟件開發(fā)中,UML(統(tǒng)一建模語言)是一種用于描述、構(gòu)建和文檔化軟件系統(tǒng)的圖形化語言,它幫助開發(fā)者以可視化的方式理解系統(tǒng)的結(jié)構(gòu)和行為,手動繪制 UML 圖可能既耗時又容易出錯,所以本文給大家介紹了如何使用IntelliJ IDEA生成UML圖,需要的朋友可以參考下
    2024-10-10
  • 詳解java并發(fā)之重入鎖-ReentrantLock

    詳解java并發(fā)之重入鎖-ReentrantLock

    這篇文章主要介紹了java并發(fā)之重入鎖-ReentrantLock,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • java 輸入某年某月某日,判斷這一天是這一年的第幾天

    java 輸入某年某月某日,判斷這一天是這一年的第幾天

    這篇文章主要介紹了java 輸入某年某月某日,判斷這一天是這一年的第幾天,需要的朋友可以參考下
    2017-02-02
  • MyBatis批量插入數(shù)據(jù)到Oracle數(shù)據(jù)庫中的兩種方式(實例代碼)

    MyBatis批量插入數(shù)據(jù)到Oracle數(shù)據(jù)庫中的兩種方式(實例代碼)

    本文通過實例代碼給大家分享了MyBatis批量插入數(shù)據(jù)到Oracle數(shù)據(jù)庫中的兩種方式,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-09-09
  • Java實現(xiàn)拓撲排序的示例代碼

    Java實現(xiàn)拓撲排序的示例代碼

    這篇文章我們要講的是拓撲排序,這是一個針對有向無環(huán)圖的算法,主要是為了解決前驅(qū)后繼的關系,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-05-05
  • java基礎篇之Date類型最常用的時間計算(相當全面)

    java基礎篇之Date類型最常用的時間計算(相當全面)

    這篇文章主要給大家介紹了關于java基礎篇之Date類型最常用的時間計算的相關資料,Java中的Date類是用來表示日期和時間的類,它提供了一些常用的方法來處理日期和時間的操作,需要的朋友可以參考下
    2023-12-12
  • Java數(shù)據(jù)結(jié)構(gòu)專題解析之棧和隊列的實現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)專題解析之棧和隊列的實現(xiàn)

    從數(shù)據(jù)結(jié)構(gòu)的定義看,棧和隊列也是一種線性表。其不同之處在于棧和隊列的相關運算具有特殊性,只是線性表相關運算的一個子集。更準確的說,一般線性表的插入、刪除運算不受限制,而棧和隊列上的插入刪除運算均受某種特殊限制。因此,棧和隊列也稱作操作受限的線性表
    2021-10-10
  • 關于@Component注解的含義說明

    關于@Component注解的含義說明

    這篇文章主要介紹了關于@Component注解的含義說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中List使用stream流轉(zhuǎn)成map的幾種方式詳解

    Java中List使用stream流轉(zhuǎn)成map的幾種方式詳解

    Stream是Java8中處理集合的關鍵抽象概念,它可以指定你希望對集合進行的操作,可以執(zhí)行非常復雜的查找、過濾和映射數(shù)據(jù)等操作,下面這篇文章主要給大家介紹了關于Java中List使用stream流轉(zhuǎn)成map的幾種方式,需要的朋友可以參考下
    2023-04-04
  • idea項目結(jié)構(gòu)中不顯示out文件夾的解決

    idea項目結(jié)構(gòu)中不顯示out文件夾的解決

    本文通過圖片的方式詳細解釋操作步驟,使讀者能夠更直觀更方便地理解和執(zhí)行操作,同時,文章末尾祝福讀者步步高升,一帆風順,展現(xiàn)了作者的人情味和親和力,整體來說,這是一篇簡單易懂、實用性強的操作指南
    2024-10-10

最新評論