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());
    }
}

也可以:

@Beanpublic SimpleClientHttpRequestFactory httpRequestFactory() {         
  SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();  
  requestFactory.setConnectTimeout(1000);  
  requestFactory.setReadTimeout(1000);               
  return requestFactory;
}
     
@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

 

 

 

來源於:

https://blog.csdn.net/qq_35860138/article/details/88941558

https://blog.csdn.net/weixin_34114823/article/details/86015073

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM