最近,由于学院的要求,我们每六个人组成一个团队,要做一个网站出来。我们组所做的网站,由我发布到google app engine上测试,测试期间发现了google app engine 的一个问题。
我们的网站是:xjlnjut730.appspot.com
由于要求在首页要有一个计数器,我为了图方便,直接用application对象来计数。
代码如下:
- <%
- String strNum=(String)application.getAttribute("num");
- int num=1000;
- if(strNum!=null)
- num=Integer.parseInt(strNum)+1;
- application.setAttribute("num",String.valueOf(num));
- %>
- <div id="counter_text">尊贵的客人,您是第<%=String.valueOf(num) %>个来访者!</div>
可以在GAE上运行,可是发现一个问题,我没有对网站进行任何改动,但是一般一段时间过去之后,application的计数回到了起点。而大家都应该清楚,application对象只有在服务器重启或者是重新部署应用程序时才会被清除的,因此我推测,google application engine可能为了服务器的性能考虑,在web服务没有流量的时间过长时会暂停你的应用。我想这一点也是可以理解的,把没用的服务关闭,可以减少服务器的开销。不过,这样的话,如果运作的是一个商业型的网站,还是会有一定的影响的,如果涉及到一些需要用到application对象时,可能需要进行一些改动。