Указывает, что ответ GET завершен с Python AppEngine - PullRequest
2 голосов
/ 14 февраля 2010

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

Ответы [ 2 ]

3 голосов
/ 14 февраля 2010

Из документов Google App Engine для объекта Response :

App Engine не поддерживает отправку данные в браузер пользователя перед выход из обработчика . Некоторые веб-серверы использовать эту технику для «потоковой передачи» данных в браузер пользователя в течение периода время в ответ на один запрос. App Engine не поддерживает это потоковая техника.

Так что легкого пути нет. Если у вас есть пакет данных, который вы можете передать более длительному методу «процесс и журнал», попробуйте использовать отложенную библиотеку . Обратите внимание, что для этого потребуется объединить ваши данные и отправить их в очередь задач для обработки и ведения журнала, поэтому

  1. Вы не можете сэкономить много времени, а
  2. результаты могут выглядеть не так, как вы бы хотели - например, вы будете регистрироваться из другого запроса, поэтому может потребоваться радикально изменить регистрацию

Тем не менее, вы можете попробовать.

0 голосов
/ 15 февраля 2010

У вас есть два варианта:

  1. Используйте API очереди задач . Постановка задачи должна быть быстрой, если у вас есть менее 10 КБ данных (что является пределом полезной нагрузки в очереди задач).
  2. Используйте хитрость, описанную Рэйфом в этом видео , чтобы выполнить обработку после завершения ответа.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...