设置接口调用超时时间的N种办法

这篇具有很好参考价值的文章主要介绍了设置接口调用超时时间的N种办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设置接口调用超时时间的N种办法

最近遇到调用ldap包接口需要设置接口超时时间,于是略微总结了一下java接口调用设置超时时间的方法:

1.在配置文件application.properties设置

springboot项目:
spring.mvc.async.request-timeout=20000,意思是设置超时时间为20000ms即20s

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.线程 future.get()中设置(重点)

本次遇到问题并非feign调用,而是本地接口调用,所以没法使用以上两种文章来源地址https://www.toymoban.com/news/detail-666313.html

3.1 线程池的创建
@Configuration
@Slf4j
public class CommonThreadPoolConfig {

    @Bean("asyncExecutor")
    public ThreadPoolTaskExecutor asyncExecutor(){
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        //核心线程数-可从配置文件获取方便更改
        executor.setCorePoolSize(2);
        //最大线程数
        executor.setMaxPoolSize(Runtime.getRuntime().availableProcessors());
        //队列容量
        executor.setQueueCapacity(100);
        //设置非活跃线程的活跃时间(超时无任务则变为非活跃状态)
        executor.setKeepAliveSeconds(60);
        //设置线程名字
        executor.setThreadNamePrefix("asyncExecutor-");
        //设置拒绝策略
        executor.setRejectedExecutionHandler( new ThreadPoolExecutor.CallerRunsPolicy());
        //设置线程工厂
        executor.setThreadFactory(Executors.defaultThreadFactory());
        //等待所有任务结束后再关闭线程池
        executor.setWaitForTasksToCompleteOnShutdown(true);

        return executor;
    }
}
3.2 使用线程池
/**线程池**/
@Resource(name = "asyncExecutor")
private ThreadPoolTaskExecutor asyncExecutor;
3.3 调用远程接口
//调用接口
Future<Boolean> future = asyncExecutor.submit(()->ldapService.authenticateWithOutCache(authWithOutCacheReqDTO));
//设置超时时间
future.get(5,TimeUnit.SECONDS);

到了这里,关于设置接口调用超时时间的N种办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • vue请求时间太长_接口处理请求时间过长,前台响应“服务器超时”的解决办法

    这些方法可以根据具体需求和情况进行选择和组合使用,以提高前端的用户体验和接口的性能。同时,还需要考虑服务器端的性能和网络环境,以及前后端的协作来实现最佳的用户体验。

    2024年02月09日
    浏览(51)
  • spring cloud gateway设置超时时间

            spring cloud可以设置请求超时和响应超时时间,一般我们都是在yml文件中直接设置的如下: 工作中遇到一个新需求,动态的给每个请求设置超时时间,spring cloud底层是用的HttpClient请求的,源代码只看到了响应时间处理,我这里用的响应超时时间,超过时间提示用户

    2024年02月12日
    浏览(11)
  • CSDN博客批量查询质量分https://yma16.inscode.cc/请求超时问题(设置postman超时时间)(接口提供者设置了nginx超时时间)

    CSDN博客批量查询质量分https://yma16.inscode.cc/请求超时问题(设置postman超时时间)(接口提供者设置了nginx超时时间)

    https://yma16.inscode.cc/ 查询别人的一下子就返回了,查询我自己的,1分钟还不返回,然后就显示超时了。。 一开始我还以为是这个开源项目本身的问题,设置了请求超时时间,我还给它改了超时时间,后来发现不是的。。。 本来是100000的,我给改成1000000了,我对js代码不熟,

    2024年02月12日
    浏览(45)
  • 【API接口工具】postman设置超时时间、请求等默认配置

    【API接口工具】postman设置超时时间、请求等默认配置

    Postman 会自动为某些设置选择默认值,以便您可以开始工作。根据您的用例随时更改设置或自定义您的 Postman 体验。 要更改 Postman 中的设置,请选择 设置图标 标题中的设置图标,然后选择设置。在 Postman 桌面应用程序中,您还可以选择⌘+逗号 (,)或Ctrl+逗号 (,) 使用“General”

    2024年02月08日
    浏览(13)
  • Springboot调整接口响应返回时长详解(解决响应超时问题)_springboot设置请求超时时间

    1、配置Http会话超时 可以通过两种方式为Spring Boot应用程序 配置HTTP会话超时 。 1.1 application.properties中配置会话超时 最简单的方法是在你的application.properties中加入参数 server.servlet.session.timeout 。 还要注意的是, Tomcat不允许你将超时时间设置得少于60秒 。 1.2 以程序方式配置会

    2024年04月27日
    浏览(47)
  • 【JAVA】设置http超时时间

    setConnectTimeout:设置连接超时时间,单位毫秒。 setConnectionRequestTimeout:设置从connect Manager获取Connection 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的。 setSocketTimeout:请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无

    2024年02月11日
    浏览(12)
  • 本地调试接口关于postman调用正常,Java代码则超时的问题。已解决

    本地调试接口关于postman调用正常,Java代码则超时的问题。已解决

    项目需要使用到openai接口,浏览器以及postman调用接口均正常,唯独java项目中一直超时,本地项目使用的hutool自带的httpUtil工具类。 使用postman调取接口正常返回: 本地java项目调取超时: 代码如下: 百度大概搜了一下,大多都是让设置idea的系统代理,都没有解决掉这个问题

    2024年02月05日
    浏览(11)
  • IDEA调用接口超时,但Postman可成功调用接口

    IDEA调用接口超时,但Postman可成功调用接口

    IDEA代码调用RESTFul接口出现“Read time out”超时的报错,但是该接口所在的网段在本开发环境中能成功访问。 ( 我用的是hutool工具类调用Http接口,这个工具类很好用,种草给各位 ) 在浏览器中能访问,由于是POST接口,http status code为405,但也有响应,而不是超时,接口是通的

    2024年02月11日
    浏览(8)
  • 前端页面超时时间设置

    前端页面超时时间设置

    有志者,事竟成 文章持续更新,可以关注【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 在项目中我们经常会有超时的情况发生,例如点击某一个查询按钮,然后

    2024年02月11日
    浏览(12)
  • axios设置超时时间

    方式一: 方式二: 3.创建实例 可以使用自定义配置新建一个 axios 实例 : axios.create([config]) 4.判断超时

    2024年02月12日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包