在Google App Engine JAVA中创建多个实例

时间:2011-09-03 09:46:47

标签: java google-app-engine instance

我正在使用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>

但它什么也没做。

我尝试更改设置

settings

没有运气。

enter image description here

那么,我该怎么办?

1 个答案:

答案 0 :(得分:1)

通过设置<threadsafe>true</threadsafe>,使您的应用程序能够处理同一实例中的并发请求。因此,如果您需要测试应用程序在多个实例处于活动状态时的行为方式,则最好禁用此选项。

此外,您可以创建流量生成器,向您的应用发出大量请求,从而导致“唤醒”多个实例。