Вопрос очень широкий, но я постараюсь в ближайшее время ответить на него.
Если ваш запрос, как вы говорите, длится 1-3 минуты, вам гораздо лучше с опросом , В противном случае вам придется увеличить время ожидания HTTP. WebSockets также является опцией, но в основном это зависит от количества клиентов, с которыми вы имеете дело, и от количества экземпляров службы, которые вы готовы иметь.
Не имеет большого значения, что вы используете на сервере. Для краткосрочных запросов что-то вроде Vert.x было бы определенно лучше, но если у вас есть эти длинные 1-метровые запросы, вы все равно будете использовать рабочие вершины, что означает ту же старую модель пула потоков.