Google App Engine выдает ложный контент в начале страницы после периода покоя - PullRequest
1 голос
/ 04 ноября 2010

Я разрабатываю приложение на Python для Google App Engine.

Когда я запускаю развернутое приложение из appspot, оно работает нормально, если я не обращаюсь к нему впервые, скажем, 5минут.Проблема в том, что, если я некоторое время не обращался к приложению, страница отображается с сообщением

Статус: 200 OK Тип содержимого: text / html;charset = utf-8 Cache-Control: no-cache Срок действия истекает: пт, 01 января 1990 00:00:00 GMT Длина контента: 15493

с добавлением вверху.Обычно этот текст отображается за секунду или две до отображения остальной части страницы.

Если я проверяю журналы сервера, я вижу информационное сообщение

Этот запрос вызвалновый процесс, который будет запущен для вашего приложения и, таким образом, приведет к первой загрузке кода вашего приложения.

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

Любые объяснения или предложения, как решить эту проблему?У меня есть смутное представление о том, что, когда GAE «просыпается» после неактивности, происходит неправильная инициализация.Или, может быть, где-то в буфере задерживается заголовок из предыдущего события.Но self.response.out кажется пустым, когда вызывается обработчик запроса.

1 Ответ

6 голосов
/ 04 ноября 2010

Где-то в коде вашего модуля верхнего уровня есть то, что использует операторы Python print. Вывести выходные данные на стандартный вывод, который возвращается как тело ответа; если он выводит пару новых строк, то содержимое до этого обрабатывается браузером как заголовок ответа. «Хлам», который вы видите, - это реальные заголовки ответа, создаваемые вашим веб-приложением.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...