java 长轮询_java – Spring中的长轮询[通俗易懂]

java 长轮询_java – Spring中的长轮询[通俗易懂]我们有一个独特的案例,我们需要与外部API接口,这需要我们长时间轮询他们的端点以获得他们所谓的实时事件.问题是我们可能有多达80,000人/设备在任何给定时间点击此端点,监听事件,每个设备/人1个连接.当客户端从我们的Spring服务发出请求以对事件进行长轮询时,我们的服务随后会对外部API进行异步调用以对事件进行长轮询.外部API已定义最小长轮询超时可设置为180秒.所以在这里我们遇到一个带队列…


Jetbrains全系列IDE稳定放心使用

我们有一个独特的案例,我们需要与外部API接口,这需要我们长时间轮询他们的端点以获得他们所谓的实时事件.

问题是我们可能有多达80,000人/设备在任何给定时间点击此端点,监听事件,每个设备/人1个连接.

当客户端从我们的Spring服务发出请求以对事件进行长轮询时,我们的服务随后会对外部API进行异步调用以对事件进行长轮询.外部API已定义最小长轮询超时可设置为180秒.

所以在这里我们遇到一个带队列的线程池不能工作的情况,因为如果我们有一个类似于(5分钟,10个最大值,10个队列)的线程池,那么10个线程可能会成为焦点,并且队列中的10个将无法获得机会,直到当前10个中的一个完成.

我们需要服务它或者失败它(我们将把负载平衡器等放在它后面),但是我们不希望在没有实际轮询的情况下让客户端挂起.

我们一直在研究如何使用DeferredResult,并从控制器返回.

一些调整的东西

@RequestMapping(value = “test/deferredResult”,method = RequestMethod.GET)

DeferredResultCompletableFuture.supplyAsync(() -> testService.test()).whenCompleteAsync((result,throwable) -> deferredResult.setResult(result));

return deferredResult;

}

我在质疑我是否在正确的道路上,并且我是否应该为CompletableFuture.supplyAsync()方法提供执行程序和什么样的执行程序(和配置)以最好地完成我们的任务.

我已经阅读了各种文章,帖子等,我想知道是否有人知道可能有助于我们的具体情况.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182173.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java注解拦截_轻松实现java拦截器+自定义注解

    java注解拦截_轻松实现java拦截器+自定义注解本文将用简洁的代码构建一个springboot的拦截器。拦截器的使用很简单,定义一个自己的拦截器,向配置中添加一下就可以使用。为了方便,之后又引入了注解。目录和概述概述假设需求:访问项目的controller是都要进行”token验证”,除了某些像登录之类的方法。项目结构:TokenInterceptor.java自定义拦截器InterceptorConfig.java添加拦截器进入项目NoN…

    2022年5月31日
  • sublime text 3 用快捷键打开任意你想打开的默认浏览器(设置超级简单)[通俗易懂]

    sublime text 3 用快捷键打开任意你想打开的默认浏览器(设置超级简单)[通俗易懂]这个问题困扰了我三个小时,查了网上各种方法都不能实现,最终自己解决了。方法很简单。首先安装插件SideBarEnhancements。1.如何设置自己的默认浏览器?转载请注明出处:原文链接打开Preferences->PackageSettings->SideBar->settings-default,查看下面这句话”default_bro……

    2022年7月27日
  • c++虚函数详解(你肯定懂了)

    c++虚函数详解(你肯定懂了)转自:c++虚函数 大牛的文章,就是通俗易懂,言简意赅。前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议…

    2022年7月26日
  • sqlserver语句创建表格_创建表的sql语句外键

    sqlserver语句创建表格_创建表的sql语句外键今天介绍一下如何使用SQLServer语句创建表并添加数据首先先了解一下表的模式,在数据库中根据模式进行分组避免表名称的冲突在SQLServer2014中直接新建表是默认的前缀dbo而命名其他的模式需要使用SQLServer语句进行创建下面将一步一步的进行演示,首先是创建一个数据库然后创建模式在后面使用根据创建的模式或者使用默认的模式名,进行创建表,语句如下图下面解释一下句子的意思看一下新建好的表后面介绍如何在新表里面添加数据…

    2022年8月31日
  • cstring头文件怎么用_C语言头文件调用

    cstring头文件怎么用_C语言头文件调用在非MFC工程中.就包含atlstr.h在MFC工程中.就包含afx.h-

    2022年9月13日
  • logcat — 基本用法

    logcat — 基本用法1.Log类是一个日志类,我们可以在代码中使用logcat打印出消息常见的日志记录方法有:v(String,String)–verbose显示全部信息d(String,String)–

    2022年7月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号