更改 Jetty 9 中的线程池大小

2022-09-01 15:27:29

如何在嵌入式 Jetty 9 中更改线程池大小?我们是否需要任何特定的组件?


答案 1

来自文档

服务器实例提供一个 ThreadPool 实例,该实例是其他 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);

答案 2

如前所述,并在上面的 Java 代码示例中进行了更正,线程池现在作为构造函数参数在 Jetty 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>
    ...

推荐