2

我有一个使用 GWT+AppEngine 构建的应用程序,用于自动创建测验:

  1. 主网页有一个按钮“创建新测验”。

  2. 单击该按钮会激活后端的服务,该服务会创建测验并将其返回。

  3. 然后主页会显示测验。

测验创建需要很多时间,所以我想在用户回答测验时预加载测验:显示测验后,我在后端激活另一个服务,创建下一个测验并将其保存在局部变量。当用户再次点击“创建新测验”时,后端注意到有一个预先创建的测验,并立即返回。

这在我的计算机上的开发模式下运行良好,但在我部署到 AppEngine 时不起作用。

似乎后端有几个副本及其所有局部变量,因此“预加载”服务在一个副本上运行,“返回新测验”在另一个副本上运行,并且不使用预加载的测验。

是这样吗?我的后端有多少个副本?如果数字不变,我可以运行“预加载测验”几次,每个副本一个。

4

1 回答 1

1

这个数字不是恒定的,你不应该假设你的后端服务器可以以这种方式工作。

您必须使用提供的服务(如 memcache 和数据存储)在请求之间进行通信。您基本上应该假设每个请求都由一个完全不同的、全新的应用程序实例响应。普通内存中的变量在请求之间不能很好地工作。

于 2012-06-11T19:05:05.863 回答