Как узнать, закрыто ли / отключено ли соединение-запросчик со стороны клиента, Python Pyramid - PullRequest
0 голосов
/ 14 ноября 2018

С внешнего интерфейса у меня есть окно поиска, которое отправляет запрос GET после каждого нового изменения, обнаруженного в текстовом поле.Чтобы не обращать внимания на ответ, если обнаружена новая строка, я просто делаю отмену моего предыдущего аксиального GET-запроса, если он все еще обрабатывается, прежде чем создавать новую.

Пример:

Text Field = i
GET i
Text Field = ie
Cancel GET i if still waiting for response
GET ie
Text Field = ie1
Cancel GET ie1 if still waiting for response
GET ie1

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

Как я могу получить пирамиду, чтобы проверить, открыто ли клиентское соединение запроса или нет.Или какое-нибудь другое решение этой проблемы.

1 Ответ

0 голосов
/ 20 декабря 2018

Невозможно проверить, открыто ли соединение или нет.

Большинство веб-серверов предназначены для жесткого закрытия / уничтожения потока / уничтожения процесса, выполняющего запрос HTTP.Сам запрос не может знать, отключился ли клиент каким-либо образом до тех пор, пока он не попытается написать запрос.

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

...