首页 > 解决方案 > 如何按接收顺序从多个请求中获取http响应

问题描述

在我的应用程序中,大约有 15 个线程,每个线程每 15 秒向 api 端点发送一次 http 请求;意思是每秒大约 1 个请求。这些线程应该无限期地运行,并且只需要创建一次。我不确定如何在主线程上连续接收响应,以便对其进行解析和处理。在尝试研究这个问题时,我发现了几个看起来可以提供帮助的框架;ScheduledExecutorService,NIO,Grizzly,AHC。但是,我对选项的数量感到瘫痪,并且不确定要实施什么。

我的主要目标是,对于 15 个请求中的每一个,让请求每 15 秒自行发送一次,并在主线程收到响应时收到响应。

标签: javaasynchronousnioscheduledexecutorservice

解决方案


这样一个简单的任务不需要特殊的框架。只需创建一个 BlockingQueue 实例(ArrayBlockingQueue 看起来是最好的选择)。每个网络线程调用queue.put(response)并且主线程response=queue.take()循环。


推荐阅读