如何按照收到的顺序从多个请求中获取http响应

How to get http responses from multiple requests in the order they're recieved

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

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

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