Google App Engine实例生命周期

时间:2012-07-09 08:08:17

标签: google-app-engine

例如,
第一个实例维护一个计数变量(初始值为0),在服务10个请求后,计数增加到10。 然后没有更多的请求因此app引擎关闭了第一个实例。
之后,创建第二个实例以提供传入请求。
我的问题是count-variable是10还是重置为init值(0)?
如果它被重置,无论如何都要避免这种情况? (除了手动使用数据存储区)?
谢谢

1 个答案:

答案 0 :(得分:1)

我认为你在谈论的是一个全局/模块级变量,它由每个请求递增。答案是每个实例都在自己的进程中运行,因此后续实例不仅会从零开始,而且由于您可以同时运行多个实例,因此每个实例都有自己独立的计数器。

执行此操作的正确方法是使用memcache存储密钥,该密钥将是所有实例中的单个值。您可以memcache.incr('counter')以原子方式递增值。

如果持久保存数据很重要,您可以考虑存储sharded counters