Если я правильно помню, все запросы к Spring MVC проходят через один фильтр.Вы можете переопределить его и запрограммировать свои настройки тайм-аута (например, иметь настраиваемый XML с URL-адресами или путями с тайм-аутом). TimeLimiter от Guava был бы хорошим инструментом для реализации самого тайм-аута.
<general-rant>
Я не знаю, в какой отрасли вы работаете, но обычно ввеб-мир слишком требователен, чтобы паниковать, если ответ не возвращается через 2-3 секунды, особенно если длительный ответ - это меньшинство (как вы говорите).У меня есть опыт работы с большими кучами (Xmx = 10g), где только сборщик мусора может занять несколько минут .Ладно, может быть, это переоцененный пример, но одно-двухсекундное взятие ГК вполне разумно.
Даже Руководство Tomcat говорит, что очень маленькие тайм-ауты, вероятно, будут контрпродуктивными .Ваш владелец продукта должен быть холериком:)
</general-rant>
А, это еще не все.Не забывайте, что вы не можете просто перенаправить, если вы уже отправили что-то обратно в свой ответ сервлета.Поэтому вам, вероятно, нужно отложить ваш ответ до тех пор, пока не будет сделан последний бит вычислений, и очистить все в конце.Это означает, что вам нужно обернуть HttpServletResponse
декоратором, который имеет своего рода защелку, которая задерживает вывод ответа до тех пор, пока не будет сгенерирован полный ответ, или, если произойдет тайм-аут - перенаправляет на страницу «ой».