2011-09-03 39 views
1

我正在使用JAVA測試Google App Engine,並且想要測試並行運行多個實例。但是,我不知道如何激活多個實例。在Google App Engine JAVA中創建多個實例

我嘗試在不同的瀏覽器中運行這個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秒鐘時間來處理,但這些請求在一個彙集例如,如果我運行這個servlet的10倍,那麼處理最後一個需要50秒。

我試着使用:

<threadsafe>true</threadsafe> 

但它什麼都不做。

我試圖改變設置

settings

沒有運氣。

enter image description here

那麼,我該怎麼辦?

回答

1

通過設置<threadsafe>true</threadsafe>,使您的應用程序可以處理同一實例內的併發請求。因此,如果您需要測試您的應用程序在多個實例處於活動狀態時的行爲,最好禁用此選項。

此外,您可以創建流量生成器,以向您的應用發出大量請求,從而導致更多一個實例「醒來」。

+1

謝謝我試圖用threadsafe = true或fase打開瀏覽器的不同實例,我無法打開超過1個實例。但是,我使用LoadUI嘗試了它,我能夠立即打開20個實例,甚至與threadsafe = true。 – magallanes