Я борюсь с асинхронной обработкой в Spring. Я решил использовать @Acync вместе с @EnableAsync и ThreadPoolTaskExecutor.
Есть ли какой-либо механизм, отвечающий за зависание потока, связанный с Spring @Async? Метод Async вызывает несколько внешних ресурсов с RestTemplate, и мне, вероятно, следует как-то защитить от зависания потока.




Единственная возможность зависания потока с @Async - это если запрос к любому внешнему ресурсу переходит в состояние зависания из-за какой-либо проблемы с сетью или ресурсами.
Решением будет предоставление тайм-аута соединения для каждого вызова внешнего ресурса.
Да, я использую это с последних 6 месяцев. Единственная проблема с зависанием потока, с которой мы столкнулись из-за того, что база данных не возвращает ответ в течение бесконечного времени.
Достаточно ли в этом случае просто установить тайм-аут RestTemplate? Можем ли мы быть уверены, что нить не будет зависать где-то посередине?