Java webengine与spark web服务的并发性
我正在尝试创建一个web服务,它可以使用Java webengine与spark web服务的并发性,java,multithreading,concurrency,executorservice,javafx-webengine,Java,Multithreading,Concurrency,Executorservice,Javafx Webengine,我正在尝试创建一个web服务,它可以使用com.ui4j.api.browser.BrowserFactory(JavaFX webview)生成一个爬虫程序,因为getBrowser方法只能返回一个实例,这也是有文档记录的 我正在尝试在不同的线程中同时运行此功能,以便一次生成多个浏览器 他们还遵循: 但我不明白如何动态添加条件/动态创建可调用项,因为所有这些代码都运行在由JavaSpark 这是我的代码: import static spark.Spark.get; import java.
com.ui4j.api.browser.BrowserFactory
(JavaFX webview)生成一个爬虫程序,因为getBrowser
方法只能返回一个实例,这也是有文档记录的
我正在尝试在不同的线程中同时运行此功能,以便一次生成多个浏览器
他们还遵循:
但我不明白如何动态添加条件/动态创建可调用项,因为所有这些代码都运行在由JavaSpark
这是我的代码:
import static spark.Spark.get;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Runcrawl {
public static void main(String[] args) {
get("/crawl/:keyword", (req, res) - > {
ExecutorService executor = Executors.newWorkStealingPool(3);
return executor.submit(() - > {
String threadName = Thread.currentThread().getName();
System.out.println("threadName : " + threadName);
return launchBrowser();
}).get();
});
}
}
现在我使用的是executor.submit().get()
,它运行良好,但会阻塞线程,因此不允许我启动单独的浏览器
谢谢,任何帮助都将不胜感激