Python Google App Engine是否为每个请求运行一个应用实例?还是所有的请求?

Python Google App Engine是否为每个请求运行一个应用实例?还是所有的请求?,python,google-app-engine,Python,Google App Engine,使用google应用程序引擎: # more code ahead not shown application = webapp.WSGIApplication([('/', Home)], debug=True) def main(): run_wsgi_app(application) if __name__ == "__main__": main() 如果两个不同的用户在两台不同的机器上请求网页,将调用

使用google应用程序引擎:

# more code ahead not shown
application = webapp.WSGIApplication([('/', Home)],
                                 debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()
如果两个不同的用户在两台不同的机器上请求网页,将调用服务器的两个单独实例

还是只有一个服务器实例一直在运行,处理所有请求

如果一个用户在同一个浏览器中打开网页两次,效果如何

编辑

根据下面的答案,一个实例可以依次处理来自不同用户的请求。然后考虑下面的代码片段,取自谷歌给出的例子:

class User(db.Model):
    email = db.EmailProperty()
    nickname = db.StringProperty()
1、电子邮件和昵称在这里定义为类变量? 2、同一个服务器实例处理的所有请求共享相同的变量,因此会错误地相互干扰吗?(比如,一个人的电子邮件出现在另一个人的页面上)


另外,我知道我应该更多地阅读手册和文档,我正在这样做,但是来自经验丰富的程序员的回答将真正帮助我更快、更全面地理解,感谢appengine根据请求量动态地构建和删除实例

发件人:

应用程序引擎应用程序由 任意给定时间的任意数量的实例 时间,取决于 您的应用程序收到的请求。 作为您申请的请求 增加,数量也会增加 为它供电的实例

每个实例都有自己的队列 传入请求。应用程序引擎监视器 每个队列中等待的请求数 实例的队列。如果应用程序引擎 检测应用程序的队列 由于增加了 加载时,它会自动创建一个新的 要处理的应用程序的实例 那负载

应用程序引擎反向缩放实例 当请求量减少时。在这个 通过这种方式,应用程序引擎确保所有 应用程序的当前实例 正被用于优化效率。 这种自动缩放功能可以使运行 应用程序引擎如此经济高效

当应用程序未被使用时 全部,应用程序引擎关闭其 关联实例,但很容易 一旦加载,就立即重新加载 需要


一个实例可以在其生命周期内处理许多请求。在python运行时的线程模型中,每个实例在任何给定时间都只能处理一个请求。如果两个请求同时到达,则单个实例可能会逐个处理它们,或者可能会生成第二个实例来处理该请求


编辑:


一般来说,每个请求使用的变量的作用域都是RequestHandler实例的
.get()
.post()
方法,因此不能“泄漏”到其他请求中。在脚本中使用全局变量时应该小心,因为这些变量将缓存在实例中,并在请求之间共享。不要在不知道自己为什么要使用globals的情况下使用globals(这对于任何应用程序都是一个很好的建议),这样你就可以了。

RE:email/昵称作为类变量。它们是
属性
,您不在使用该类实例的类上工作。ie您不需要
User.email=”x@x.com“
youdo
u=User();u、 电子邮件=”x@x.com“