网页制作网站发布教学设计,微信小程序是什么意思?有什么用,做文案的网站,wordpress 文章类feign设置超时时间
feign的 本质是 调用 http请求#xff0c;如果不设置超时时间#xff0c;请求长时间连接着#xff0c;占用系统资源#xff0c;影响用户体验。
feign设置超时时间#xff0c;可以通过 Request.Options 来设置。
FeignClientFactoryBean #xff1a;…feign设置超时时间
feign的 本质是 调用 http请求如果不设置超时时间请求长时间连接着占用系统资源影响用户体验。
feign设置超时时间可以通过 Request.Options 来设置。
FeignClientFactoryBean
调用 feign 会调用 FeignClientFactoryBean 类的 feign() 方法再用 configureFeign() 配置 feign 。 protected Feign.Builder feign(FeignContext context) {FeignLoggerFactory loggerFactory get(context, FeignLoggerFactory.class);Logger logger loggerFactory.create(this.type);Feign.Builder builder get(context, Feign.Builder.class)// required values.logger(logger).encoder(get(context, Encoder.class)).decoder(get(context, Decoder.class)).contract(get(context, Contract.class));//配置 feign。configureFeign(context, builder);return builder;}在 内部的 configureUsingConfiguration() 可以看到 // Request.Options 配置的超时时间会在这里 添加到 feign配置中。Request.Options options getOptional(context, Request.Options.class);if (options ! null) {builder.options(options);}代码示例
FeignTimeoutConfiguration 配置类
Configuration
public class FeignTimeoutConfiguration {Value(${feign.connect.time:10000})private int connectTimeout;Value(${feign.read.time:5000})private int readTimeout;Beanpublic Request.Options options() {return new Request.Options(connectTimeout, readTimeout);}
}FeignClient 注解 指定配置 在 configuration 属性中指定配置为 以上设置的 FeignTimeoutConfiguration 即可。
FeignClient(name myService, configuration FeignTimeoutConfiguration.class)
RequestMapping(/myService)
public interface MyFeignService {}