2013-08-30 43 views

回答

24

docs

服務器實例提供一個線程池實例,它是默認 執行人服務等Jetty服務器組件使用。線程池的主要配置 是最大和最小大小,並且在etc/jetty.xml中設置了 。

<Configure id="server" class="org.eclipse.jetty.server.Server"> 
<Set name="threadPool"> 
    <New class="org.eclipse.jetty.util.thread.QueuedThreadPool"> 
     <Set name="minThreads">10</Set> 
     <Set name="maxThreads">1000</Set> 
    </New> 
</Set> 
</Configure> 

或者

QueuedThreadPool threadPool = new QueuedThreadPool(100, 10); 
Server server = new Server(threadPool); 
+6

您的代碼示例不適用於碼頭9.04的工作,因爲在服務器級不setThreadPool方法。此外,我需要這樣的偏好嵌入式碼頭服務器,我已經更新了一個問題。 –

+5

ThreadPool可以傳入服務器實例的構造函數中,或者只需調用server.getThreadPool()並在調用之前調整.start() –

+1

在Jetty-9中,許多方法簽名已更改爲服務器。現在,它不再是getter和setter,而是更多的構造函數。此外,修復了代碼示例。 – rocketboy

19

如上所述,並且在上面的Java代碼示例糾正,線程池現在作爲在碼頭9(及後續版本)構造器參數。

修正XML例如:

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 

    <!-- =========================================================== --> 
    <!-- Configure the Server Thread Pool.       --> 
    <!--                --> 
    <!-- Consult the javadoc of o.e.j.util.thread.QueuedThreadPool --> 
    <!-- for all configuration that may be set here.     --> 
    <!-- =========================================================== --> 
    <Get name="ThreadPool"> 
     <Set name="minThreads" type="int">10</Set> 
     <Set name="maxThreads" type="int">200</Set> 
     <Set name="idleTimeout" type="int">60000</Set> 
     <Set name="detailedDump">false</Set> 
    </Get> 
    ... 
+1

此方法適用於Jetty HTTP Client嗎?該文件在JAR文件中嵌入客戶端的位置在哪裏? – will

+0

這是我在互聯網上發現的唯一工作。我使用的是Jetty Maven插件v9.2.2。謝謝!! – Cameron