我正在为Google App Engine开发Python应用程序。
当我从appspot运行已部署的应用程序时,它工作正常,除非我第一次访问它,比如5分钟。问题是,如果我暂时没有访问该应用程序,页面将显示消息
状态:200 OK内容类型:text / html; charset = utf-8 Cache-Control:no-cache Expires:Fri,01 Jan 1990 00:00:00 GMT Content-Length:15493
位于顶部。通常,在显示页面的其余部分之前,该文本会显示一两秒钟。
如果我检查服务器日志,我会看到信息消息
此请求导致为您的应用程序启动了一个新进程,从而导致您的应用程序代码首次加载。
通过刷新页面可以轻松解决问题。在这种情况下,页面正确传递,并适用于后续刷新。但如果我等了5分钟,问题就会出现。
有关如何解决此问题的任何解释或建议?我有一个模糊的概念,即当GAE在不活动后“唤醒”时,会出现不正确的初始化。或者也许前一次活动的标题在某处缓冲区中挥之不去。但是,当调用请求处理程序时,self.response.out
似乎是空的。
答案 0 :(得分:6)
您的顶级模块代码中的某个地方使用了Python print
语句。将输出打印到标准输出,这是作为响应主体返回的输出;如果它输出一对换行符,则浏览器将之前的内容视为响应头。您看到的“垃圾”是您的webapp生成的真实响应标题。
它只发生在启动请求上,因为这是有问题的代码执行的唯一时间。