springboot设置接口超时

 

springboot 设置接口超时

1、配置文件 application.properties中加了,意思是设置超时时间为20000ms即20s,

spring.mvc.async.request-timeout=20000

 

2、config配置类

public class WebMvcConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void configureAsyncSupport(final AsyncSupportConfigurer configurer) { 
        configurer.setDefaultTimeout(20000); 
        configurer.registerCallableInterceptors(timeoutInterceptor()); 
    } 
    @Bean 
    public TimeoutCallableProcessingInterceptor timeoutInterceptor() { 
        return new TimeoutCallableProcessingInterceptor(); 
    } 
}

 

3、RestTemplate超时

设置配置HttpComponentsClientHttpRequestFactory中的RequestConfig属性

import lombok.extern.slf4j.Slf4j; 
import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; 
import org.springframework.web.client.RestTemplate; 
  
@Slf4j 
@Configuration 
public class RestTemplateConfig { 
  
    @Bean 
    @ConfigurationProperties(prefix = "rest.connection") 
    public HttpComponentsClientHttpRequestFactory httpRequestFactory() { 
        return new HttpComponentsClientHttpRequestFactory(); 
    } 
  
    @Bean 
    public RestTemplate customRestTemplate(){ 
        return new RestTemplate(httpRequestFactory()); 
    } 
}

application.properties:

#restTemplate配置 
rest.connection.connectionRequestTimeout=30000 
rest.connection.connectTimeout=30000 
rest.connection.readTimeout=30000

或者

#restTemplate配置 
rest.connection.connection-request-timeout=30000 
rest.connection.connect-timeout=30000 
rest.connection.read-timeout=30000
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页