【问题标题】:Google App Engine gives spurious content at beginning of page after quiescent periodGoogle App Engine 在静止期后在页面开头提供虚假内容
【发布时间】:2010-11-04 15:15:11
【问题描述】:

我正在用 Python 为 Google App Engine 开发一个应用程序。

当我从 apppot 运行已部署的应用程序时,它运行良好,除非我在 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 似乎为空。

【问题讨论】:

    标签: python google-app-engine


    【解决方案1】:

    顶级模块代码中的某处使用 Python print 语句。将输出打印到标准输出,即作为响应正文返回的内容;如果它输出一对换行符,则浏览器会将之前的内容视为响应头。您看到的“垃圾”是您的 web 应用程序生成的真正响应标头。

    它只发生在启动请求上,因为这是唯一一次执行有问题的代码。

    【讨论】:

    • 非常明显,一旦被指出。我花了大约 10 秒钟才找到有问题的打印语句,问题看起来已经解决了。谢谢!
    猜你喜欢
    • 2016-01-22
    • 2014-10-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2017-08-15
    • 2012-04-26
    相关资源
    最近更新 更多