【发布时间】:2014-05-13 03:27:31
【问题描述】:
我对我在谷歌应用引擎上设置的这个示例应用感到非常困惑。这是我所拥有的:
package com.ha.ha.ha;
import java.io.IOException;
import javax.servlet.http.*;
@SuppressWarnings("serial")
public class SecondTrialServlet extends HttpServlet {
private static int sCounter = 0;
private int mCounter = 0;
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("sCounter is : " + (sCounter++));
resp.getWriter().println("mCounter is : " + (mCounter++));
}
}
当我在浏览器页面上点击我的本地主机(或已部署的版本)并刷新页面 9 次时,我看到:
sCounter is : 9
mCounter is : 9
为什么会这样?我认为当我执行新请求(刷新浏览器页面)时,实例变量应该被“清除”或其他东西。
我可以期望柜台继续运行多长时间?就像如果我在那里设置一个不断刷新页面,它会一直持续到Integer.MAX_VALUE 吗?
这仅仅是因为我有 1 个“实例”吗?如果是这样,我可以期望这个实例继续运行多长时间?
我想构建一个简单的应用程序,可以无限期地保留一些哈希图。我不希望网络应用程序有必须的流量(可能每天少于 100 个请求)。我可以像使用 counter 变量一样存储所有内容吗?
【问题讨论】:
标签: java google-app-engine memory-management google-cloud-datastore ram