繁体   English   中英

Jsoup 并发执行抛出 UnknownHostException

[英]Jsoup executing concurrently throws UnknownHostException

我尝试与此代码并行运行 Jsoup(版本 1.11.2):

public class JsoupParallelRunner {

private static String[] urls = { ... some URLs ...}

public static void main(String... args) {
    ExecutorService executor = Executors.newFixedThreadPool(10);

    for (String url : urls) {
        executor.execute(() -> {
            try {
                Connection c = Jsoup.connect(url);
                Connection.Response r = c.execute();
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    }
}

但是如果我在FixedThreadPool使用超过 6 个并行线程,它会在FixedThreadPoolexecute()方法中抛出java.net.UnknownHostException 低于6没有问题。

根据jsoup 线程安全Jsoup 是线程安全的。

如果有任何帮助:我的 CPU 有 2 个内核(4 个虚拟)。

更新:这似乎只是我的电脑的问题。 我在另外两台计算机(相同的 Java 版本,相同的 Jsoup 版本)上尝试了它,并且在那里工作。

更新 2 :这似乎是我的笔记本电脑在某个网络中的问题。 我在我的家庭网络上用这台笔记本电脑尝试过 - 在那里它起作用了。 回去工作 - 同样的问题。 与网络相关的所有其他内容似乎都可以工作(浏览器、ssh 等)。 我想这是一些奇怪的网络问题,与 Jsoup 无关。

尝试检查您是否在工作中配置了代理。 如果是,那么您必须为 JSOUP 连接提供代理

Document doc = Jsoup.connect(<website.com>).proxy(<host>, <port>).get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM