我正在使用JAVA测试Google App Engine,我想测试并行运行多个实例。但是,我不知道如何激活倍数实例。
我尝试在不同的浏览器中运行此Servlet(我也尝试在不同的机器上运行并发调用 - 使用不同的IP)
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import java.math.*;
public class SimpleServlet extends HttpServlet
{
//A variable that is NOT thread-safe!
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doPost(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
int counter = 0;
resp.getWriter().println("<HTML><BODY>");
resp.getWriter().println(this + ": <br>");
for (int c = 0; c < 10; c++)
{
resp.getWriter().println("Counter = " + counter + "<BR>");
try
{
//Thread.currentThread().sleep( 500);
for (int e=0;e<9999;e++) {
}
Thread.sleep(500);
counter++;
}
catch (InterruptedException exc) {
resp.getWriter().println("I can't sleep<BR>");
}
}
resp.getWriter().println("</BODY></HTML>");
}
}
每个Servlet需要5秒钟才能处理,但是请求汇集在一个实例中,例如,如果我运行10次这个servlet,则需要50秒来处理最后一个。
我尝试使用:
<threadsafe>true</threadsafe>
但它什么也没做。
我尝试更改设置
没有运气。
那么,我该怎么办?
答案 0 :(得分:1)
通过设置<threadsafe>true</threadsafe>
,使您的应用程序能够处理同一实例中的并发请求。因此,如果您需要测试应用程序在多个实例处于活动状态时的行为方式,则最好禁用此选项。
此外,您可以创建流量生成器,向您的应用发出大量请求,从而导致“唤醒”多个实例。