簡體   English   中英

如何在 Feign 客戶端中為 API 設置單獨的不同讀取超時?

[英]How to make seperate different read timeout for APIs in feign client?

我在我的 spring 引導應用程序中使用假裝客戶端,我想為不同的調用配置單獨的超時,例如,如果我有更新和創建調用,我想為更新 = 3000 和創建 =12000 設置讀取超時,我怎么能去做?

@FeignClient(name = "product-service")
public interface ProductClient {

    @PostMapping(value = "/product/create")
    public ProductCreation productCreationExternalRequest(@RequestBody ProductCreationRequest productCreationRequest);
    
    @PostMapping(value = "/product/update")
    public ProductCreation productUpdateExternalRequest(@RequestBody ProductCreationRequest productCreationRequest );
    
}

我的服務 class 是:


    public class  MyService {
    .
    .
    productCreationResponse = productClient.productCreationExternalRequest(productCreationRequest);
    ..
    productupdateResponse = productClient.productUpdateExternalRequest(productCreationRequest);
    
    }

你可以通過發送選項參數作為你偽造方法的參數來做到這一點:

@FeignClient(name = "product-service")
public interface ProductClient {
    @PostMapping(value = "/product/create")
    ProductCreation productCreationExternalRequest(ProductCreationRequest productCreationRequest, Request.Options options);

    @PostMapping(value = "/product/update")
    ProductCreation productUpdateExternalRequest(ProductCreationRequest productCreationRequest, Request.Options options);
}

然后使用您的方法,如下所示:

productClient.productCreationExternalRequest(new ProductCreationRequest(), new Request.Options(300, TimeUnit.MILLISECONDS,
           1000, TimeUnit.MILLISECONDS, true));
productClient.productUpdateExternalRequest(new ProductCreationRequest(), new Request.Options(100, TimeUnit.MILLISECONDS,
           100, TimeUnit.MILLISECONDS, true));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM