具有多个线程的ExecutorService

问题描述 投票:0回答:0

我正在研究一个java web-socket应用程序,我将期待一个服务的回复。 我使用ExecutorServiceFutureTask来提交任务。 我需要不断点击服务直到得到响应,如果我在5分钟内没有得到响应,我需要取消服务调用并转到下一个任务。 我在while循环中调用代码,我不知道如何在5分钟后停止执行。 所以内存不足问题。

我在JBoss服务器上尝试这个POC。 我正在创建执行程序服务并提交请求。

第一个电话:

ExecutorService executorService = Executors.newFixedThreadPool(50);
Future<UserData> futureResult = executorService
                                .submit(new WebSocketPoolingThread(request));

WebSocketPoolingThread是一个可调用的类,我将调用需要响应的服务器

public List<Response> call() throws Exception {
   //call server till get success response 
   //if not stop the call in 5 mins
}

我得到了回应,

if (futureData.isDone()){
   UserData = futureData.get();
}

截至目前,我在while循环中调用“First call”。 我需要根据上述条件停止它。 请帮助我或建议我采取任何其他方法来实现这一目标。

java multithreading executorservice
© www.soinside.com 2019 - 2024. All rights reserved.