java - 如何按接收顺序从多个请求中获取http响应
问题描述
在我的应用程序中,大约有 15 个线程,每个线程每 15 秒向 api 端点发送一次 http 请求;意思是每秒大约 1 个请求。这些线程应该无限期地运行,并且只需要创建一次。我不确定如何在主线程上连续接收响应,以便对其进行解析和处理。在尝试研究这个问题时,我发现了几个看起来可以提供帮助的框架;ScheduledExecutorService,NIO,Grizzly,AHC。但是,我对选项的数量感到瘫痪,并且不确定要实施什么。
我的主要目标是,对于 15 个请求中的每一个,让请求每 15 秒自行发送一次,并在主线程收到响应时收到响应。
解决方案
这样一个简单的任务不需要特殊的框架。只需创建一个 BlockingQueue 实例(ArrayBlockingQueue 看起来是最好的选择)。每个网络线程调用queue.put(response)
并且主线程response=queue.take()
循环。
推荐阅读
- windows - 如何覆盖文件但保留原始文件时间戳
- javascript - 一些图像没有出现在我的 ionic 3 列表中
- python - Python甚至分组分配
- java - 来自 URL json 的 JavaFX Dynamic TableView
- android - CollapsingToolbarLayout 滚动时将自定义文本移动到中心
- react-native - 本机基础缩略图不接受图像源
- javascript - 从 javascript 发送 POST 表单时从当前窗口重定向
- authentication - Rally 休息 API 的问题 - .Net
- php - Confusion about object companion after using Laravel factory()->create()
- javascript - RXJS Angular - 如何在包含可观察对象的 foreach 循环结束时调用函数?