Как реализовать тайм-аут запроса в Grails? - PullRequest
0 голосов
/ 14 сентября 2010

Я хотел бы иметь возможность установить настраиваемое (по контроллеру / действию) время ожидания запроса в граалях.Цель состоит в том, чтобы обработать редкий режим высокой нагрузки детерминистическим способом.Например, я знаю, что если заданный контроллер / действие не возвращается через 30 секунд, то что-то ужасно неправильно, и я не хочу, чтобы пользователь зависал.

Я бы хотел с этим справитьсяв рамках логики приложения, если это возможно, поскольку могут быть разумные восстановления или обмен сообщениями в зависимости от условий события.

Фильтры не работают, поскольку в любом месте жизненного цикла обработки запроса может быть достигнуто время.

1 Ответ

1 голос
/ 14 сентября 2010

Я не думаю, что это легко достижимо. Вероятно, вы ограничены возможностями используемого вами контейнера сервлетов. Например, с tomcat вы можете установить connectionTimeout . К сожалению, это может не дать вам контроль, который вы запрашиваете, поскольку время ожидания и ответ больше зависят от контейнера.

Возможно, вы могли бы сделать это с помощью фоновых потоков, таймеров, прерываний и некоторой черной магии, но это, вероятно, было бы опрометчивым поступком.

Пара обсуждений в списке рассылки, которые я нашел по теме:

...