2

我正在寻找一种方法来打开许多与 Java 网站的连接。

我的问题是服务器响应时间在很多情况下真的很慢。因此,我认为寻找一些可以处理打开许多连接并且可能在连接/响应准备好时使用处理程序的 java 库是一个好主意。

有没有类似的东西(这是伪代码!!)

getWebsiteContent(URL url) { //does not wait for the response
new AsynchronousConnection(url) {

    requestServedHandler(ConnectionObject) {
        InputStream is = ConnectionObject.getInputStream();

        //here I will process the content of the stream only when it is available
    }
} 
}

我不介意给我原始 HTML 的处理程序。

4

1 回答 1

1

我不知道有这样一个专门的库,但您可以创建自己的多线程解决方案。将您的检索器任务编写为Callable返回 HTML,然后将这些带有适当 URL 的可调用文件提交到ExecutorService. 网上有很多这种模式的代码示例,但如果你问,我可以给你写一个。
更多提示:此设置类似于非常常见的生产者-消费者模式。您的任务可以将站点内容放入 aBlockingQueue并让处理器线程定期轮询以查找准备好的数据。如果您想要更多的活力或不想要更多的活力,可以使用超时进行轮询,但这会阻塞直到数据可用。

于 2012-09-14T07:16:06.653 回答