GAE WSGIApplication和多个请求

时间:2010-07-19 19:11:33

标签: python google-app-engine request

在dev_appserver

class MainPage(webapp.RequestHandler):
  def get(self):
     self.response.out.write("Hello MainPage")

class TestPage(webapp.RequestHandler):
  def get(self):
    # 10 seconds
    i = 1
    while True:
      if i == 10:
        break
      time.sleep(1)
      i = i + 1

application = webapp.WSGIApplication([
  ('/', MainPage)
  ('/test10', TestPage),
], debug=True)

我不明白。我转到http://localhost:8080/test10并转到http://localhost:8080/,但MainPage未执行。 10秒后,MainPage返回“Hello MainPage”。 GAE服务器不支持多个请求?

3 个答案:

答案 0 :(得分:1)

云中Google服务器上的实际GAE网络服务器轻松支持多个请求(实际上,它们的可扩展性是其优势之一!),通常使用多个进程,可能还有多台计算机在一段时间内分担负载许多请求都在快速而激烈地发生。

在本地计算机上运行的SDK,旨在帮助您开发(绝对不是为了实际提供生产流量! - ),相继提供请求,以便您更容易调试(直接,通过日志等等。)

如果您想自己(来自您自己的计算机或数据中心)提供GAE应用程序,不是为了开发目的而是为了生产,请考虑GAE API的替代实现,例如appscale(如果您更合适)有许多可用于此目的的服务器,以及处理它们的sysadm技能)和typhoonae(如果您只使用一台或几台服务器并希望减少sysadm工作负载,则可能更合适。)

答案 1 :(得分:1)

您尚未包含main()方法或导致第一个请求正确处理的“magic”节。将以下内容添加到模块的末尾:

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()

答案 2 :(得分:0)

@Nick Johnson:你测试一下吗?当然!我的代码包括“run_wsgi_app”和“main”函数。

http://groups.google.com/group/google-appengine-python/browse_thread/thread/102d76f04ecc5155