java - 使用 Jersey 和 Jetty 在独立 Java 应用程序中以编程方式配置码头工作管理器
问题描述
我正在使用 Jersey 和 Jetty 开发一个独立的 Java 应用程序。为了高效的线程池,我想配置工作管理器并想将我的应用程序部署为 jar。我在我的主启动器类中创建了服务器实例,例如
Server server = new Server(Integer.valueOf(port));
ServletContextHandler context = new ServletContextHandler(server, "/");
我发现了不同的资源,它说我可以在 config.xml 中配置工作管理器,如下所示。
<work-manager>
<name>WM</name>
<max-threads-constraint>64</max-threads-constraint>
<min-threads-constraint>3</min-threads-constraint>
<fairshare>80</fairshare>
</work-manager>
但是,如果我想在我的主类和其他资源(如 JDBC 数据源)中以编程方式配置相同的东西,我该怎么做?任何帮助将不胜感激。在此先感谢。
注意:我使用的是码头版本9.4.16.v20190411和我的 pom 条目
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
编辑:我想得到参数化的工作管理器,比如
private WorkManager getWorkManager(String workManagerName) throws RuntimeException {
String workManagerLookupName = null;
try {
workManagerLookupName = "java:comp/env/" + workManagerName;
InitialContext ic = new InitialContext();
//Resource resource = new Resource("java:comp/env/" + workManagerName,);
WorkManager wm = (WorkManager) ic.lookup(workManagerLookupName);
return wm;
} catch (NamingException e) {
throw new RuntimeException("Unable to get WorkManager instance for " + workManagerLookupName, e);
}
}
是否有可能以编程方式?
解决方案
您可以创建一个 threadPool 配置并将其传递给服务器构造函数:
QueuedThreadPool threadPool = new QueuedThreadPool();
threadPool.setMaxThreads(64);
threadPool.setMinThreads(3);
Server server = new Server(threadPool);
说明如何添加 JDBC 数据源可以在这里找到: Jetty Bind DataSource in JNDI Context
推荐阅读
- python - Python仅从字符串中获取起始数字序列
- python - ipywidgets:如何获取数组输入?
- javascript - 如果宽度太窄,不显示组件
- javascript - 如何将变量从一个 javascript 传递到另一个 javascript?
- python - 我应该如何修复我的代码以读取 CSV 文件中的所有行?
- fluent-bit - 在 Mac 上安装 Fluent Bit
- javascript - Angular 嵌套 *ngFor / 渲染性能
- google-bigquery - Python Big Query - 能够检查源数据集中是否存在授权视图以及如何删除它
- c# - 控制器测试仅在服务器上失败
- php - PHP邮件不显示正文,头部标签