ExecutorService с несколькими потоками - PullRequest
0 голосов
/ 14 июня 2019

Я работаю над приложением java для веб-сокетов, в котором я буду ожидать ответа от службы.Я использовал ExecutorService & FutureTask для отправки задач.Мне нужно постоянно нажимать на сервис, пока я не получу ответ. Если я не получу ответ в течение 5 минут, мне нужно отменить сервисный вызов и перейти к следующему заданию.Я вызываю код в цикле while, я не знаю, как остановить выполнение через 5 минут.Так что из-за проблемы с памятью.

Я пытаюсь это POC на сервере JBoss.Я создаю службу executor и отправляю запрос.

Первый вызов:

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.Мне нужно остановить это на основе вышеуказанного условия.Пожалуйста, помогите мне или предложите мне другой подход для достижения этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...