Обнаружение прерванных клиентом запросов в AppEngine - PullRequest
2 голосов
/ 20 февраля 2012

У меня есть запрос в AppEngine, который занимает немного времени (много секунд). Есть ли способ определить, прервал ли пользователь или какая-либо проблема в сети запрос? Это позволило бы мне сэкономить нагрузку на сервер для продолжения генерации результата, который никуда не денется.

Я попробовал следующее в Dev-Mode, но ни один из них не сработал (еще не проверял, ведет себя ли он по-другому в производственном режиме):

  • Проверка, завершается ли resp.getOutputStream, не выдавая IOException
  • Проверка наличия прерывания, отправленного в поток сервлета

Спасибо, Маркус

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

Ответы [ 3 ]

2 голосов
/ 20 февраля 2012

Я не знаю, возможно ли это вообще на App Engine, механизм приложений не разрешает выполнение запроса.Ответ отправляется клиенту после того, как обработчик / сервлат вернулся.

1 голос
/ 22 февраля 2012

Нет, нет способа обнаружить это внутри приложения.Я бы не волновался об этом.

0 голосов
/ 20 сентября 2017

Уже поздно, но это может быть полезно.В Golang вы можете обнаруживать прерывания, используя пакет * 1002. *

Вот полезное видео Франческа Кампоя, объясняющее это:

https://www.youtube.com/watch?v=LSzR0VEraWw

...