谷歌应用引擎-GAE app.yaml似乎在不一致地路由请求



我在app.yaml中有以下内容:

- url: /gae_mini_profiler/static
  static_dir: gae_mini_profiler/static
- url: /gae_mini_profiler/.*
  script: gae_mini_profiler/main.py
- url: .*
  script: main.py

以及gae_mini_profiler/main.py中的以下内容:

def main():
    logging.critical("gae_mini_profiler request!")
    run_wsgi_app(application)

但是,当我向/gae_mini_profiler/request发出请求时?request=ABC,并重复重新加载页面,有时我会得到正确的响应(以及"gae_mini_profiler request!"日志条目,有时我得到一个空白响应,在应用程序引擎日志中除了一个空响应体的200之外什么都没有。

这是完全可复制的,只发生在现场环境中,我想说大约50%的刷新有效,而50%无效。

这种情况只发生在生产中。有什么想法吗?

您的main.py末尾有这一节吗?

if __name__ == '__main__':
  main()

给定的appserver第一次使用给定的处理程序处理请求时,只需导入它。这一节告诉解释器在作为处理程序导入时运行main()函数。在随后的请求中,appserver直接运行main,这就是为什么每隔一段时间就会看到输出的原因。