Как мне напрямую ответить на почтовый запрос, используя urllib3 и механизм приложения?

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

Для этого я пытаюсь использовать urllib3 (если есть лучший способ, пожалуйста, сообщите мне). Когда вызывается метод post моего обработчика запросов, я хочу написать обратно на вызывающий URL-адрес, сохраняя соединение открытым. Я понимаю, как открыть запрос с помощью urllib3, но как мне сохранить соединение, которое было создано при вызове метода post в обработчике.

На данный момент я пытаюсь:

http = urllib3.PoolManager()
r = http.request('POST', self.request.url, fields={"foo":"bar"})

Но я боюсь, что открываю совершенно новую связь, делая это.

Спасибо, Сэм


person SammmyC    schedule 15.08.2012    source источник


Ответы (1)


Невозможно установить постоянное соединение с сервером с помощью AppEngine, поскольку каждый запрос в механизме приложения закрывается после завершения отправки.

Служба получения URL-адресов не поддерживает постоянные соединения HTTP. Когда приложение получает доступ к данным ответа с помощью объекта URLConnection, App Engine вызывает службу получения URL-адресов для выполнения запроса. После доступа к данным ответа данные запроса не могут быть изменены.

Приложение не может устанавливать явные тайм-ауты соединения для запроса.

person Shay Erlichmen    schedule 15.08.2012
comment
Разве Url Fetch не используется только для выезда? Я хочу сохранить входящее соединение и записать обратно на то же соединение, которое, как я думал, я мог бы использовать urllib3 для исходящего. - person SammmyC; 16.08.2012
comment
Это невозможно по той же причине, к моменту получения запроса соединение разрывается. - person Shay Erlichmen; 16.08.2012