我正在研究一个java web-socket应用程序,我将期待一个服务的回复。 我使用ExecutorService
和FutureTask
来提交任务。 我需要不断点击服务直到得到响应,如果我在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”。 我需要根据上述条件停止它。 请帮助我或建议我采取任何其他方法来实现这一目标。