feign 针对某一个特定接口设置超时时间

一、对feign所有接口设置超时配置

如果是当前feign所有接口的超时配置,需要在 @FeignClient 的 configuration 属性中设置。

详情见: https://blog.csdn.net/sinat_32502451/article/details/136884349

二、针对某一个特定接口设置超时时间

调用 feign:

服务消费者需要传多一个 options参数,就可以设置特定接口的超时时间。
@RequestParam("options") Request.Options options

/**
  *  如果是当前feign所有接口的超时配置,需要在 @FeignClient 的 configuration 属性中设置。
  *   详情见: https://blog.csdn.net/sinat_32502451/article/details/136884349
  */
@FeignClient(name = "my-service")
@RequestMapping("/my-service")
public interface MyServiceApi {

    /**
      *  服务消费者需要传多一个 options参数,就可以设置特定接口的超时时间。 
      *  @RequestParam("options") Request.Options options 
      *  服务生产者不需要做处理。
      */
    @PostMapping( "/update")
    Response<UpdateVo> update(@RequestBody UpdateDto updateDto, @RequestParam("options") Request.Options options);

}

服务消费者:

服务消费者需要传多一个 options参数,就是 new Request.Options(connectTimeout, readTimeout)

    @Value("${my.feign.connectTimeout:6000}")
    private int connectTimeout;

    @Value("${my.feign.readTimeOut:6000}")
    private int readTimeout;
    
    
    //服务消费者需要传多一个 options参数,就是 new Request.Options(connectTimeout, readTimeout)
    Response<UpdateVo> updateVo = myServiceApi.update(updateDto, new Request.Options(connectTimeout, readTimeout));

服务生产者:

跟其他的生产者接口一样格式。

    @PostMapping("/update")
    @ResponseBody
    public Response<UpdateVo> update(@RequestBody UpdateDto updateDto) {
      ...
    }

posted on 2025-01-04 12:58  乐之者v  阅读(956)  评论(0)    收藏  举报

导航