当前位置: 首页 > 知识库问答 >
问题:

如何在JAXR中创建多个ManagedScheduledExecutorService资源

宁鹏程
2023-03-14

我正在使用WebSphere Liberty(wlp)和JAX-RS开发一个服务。我想在我的服务中运行多个计划程序,定期执行不同的任务。我已经安装了Concurrent-1.0特性,并定义了

@Resource(name ="DefaultManagedScheduledExecutorService")
private ManagedScheduledExecutorService myScheduler;

在实现ServletContextListener的init类中

如何在其他类中创建更多实例

我可以找到ManagedScheduleDexecutorService的指针,例如:http://www.adam-bien.com/roller/abien/entry/injection_an_executorservice_with_java
我对ManagedScheduleDexecutorService尝试了相同的操作,但没有成功。

但是我无法获得ManagedScheduleDexecutorService资源的大量信息。

请在这里提供任何有用的链接或指针。

共有1个答案

容学林
2023-03-14

当前的注入示例正在使用默认的ManagedScheduledExecutorService,一旦您打开concurrent-1.0特性,它就可用了。

要配置其他ManagedScheduleDexecutorService,您可以在server.xml配置中定义更多,如下所示:

<managedScheduledExecutorService jndiName="concurrent/exec1"/>
<managedScheduledExecutorService jndiName="concurrent/exec2"/>
<managedScheduledExecutorService jndiName="concurrent/exec3"/>

但是,您确实没有理由需要额外的ManagedScheduleDexecutorService的,除非它们将为不同的任务应用不同的上下文服务配置。例如:

<managedScheduledExecutorService jndiName="concurrent/classloaderExec">
    <contextService>
        <classloaderContext/>
    </contextService>
</managedScheduledExecutorService>

<managedScheduledExecutorService jndiName="concurrent/jeeMetadataExec">
    <contextService>
        <jeeMetadataContext/>
    </contextService>
</managedScheduledExecutorService>

如果您只是想安排不同的任务,例如MyHourlyTaskMyDailyTask,您仍然可以使用相同的ManagedScheduledExecutorService资源来完成:

myScheduler.scheduleAtFixedRate(myHourlyTask, 0, 1, TimeUnit.HOURS);
myScheduler.scheduleAtFixedRate(myDailyTask,  0, 1, TimeUnit.DAYS);

在任何非资源类中声明和使用ManagedScheduleDexecutorService默认资源实例:

/** The scheduler. */
private ManagedScheduledExecutorService monkeyScheduler;
try {
        monkeyScheduler = (ManagedScheduledExecutorService) 
                new InitialContext().lookup("java:comp/DefaultManagedScheduledExecutorService");
    } catch (NamingException e) {
        e.printStackTrace();
    }
 类似资料:
  • 当使用嵌入式HSQLDB进行单元测试时,似乎无法正确处理hibernate实体映射文件中定义的模式和/或目录。hibernate映射如下所示: 我不能更改hibernate实体映射,我不想使用其他数据库引擎(我知道H2DB可以处理这个)。有人能说明如何使HSQLDB在这个单元测试上下文中工作吗?

  • 问题内容: 如何在不手动输入的情况下创建许多空列表 是否存在for循环,使我的空列表数量为n? 问题答案: 列表理解在这里最简单: 注意不要掉进陷阱:

  • 问题内容: 我使用以下代码在logstash.conf中创建索引 为了创建另一个索引,我通常在上面的代码中用另一个索引名称替换索引名称。有什么办法可以在同一文件中创建许多索引?我是ELK的新手。 问题答案: 您可以根据其中一个字段的值在索引名称中使用模式。在这里,我们使用字段的值来命名索引: 您还可以将多个输出用于同一ES主机或不同ES主机: 或者,您可能想根据某个变量将文档路由到不同的索引: 更

  • 问题内容: 无论如何,我对ArrayLists还是很陌生,但是我在这个项目中需要它们,如果你们能帮助我,我将不胜感激! 基本上,我需要创建一个多维数组列表来保存字符串值。我知道如何使用标准数组来执行此操作,但是这样做并不好,因为我不知道数组的大小,我所知道的只是它会有多少个尺寸。 因此,如果你们知道如何制作“具有2 / +尺寸的可动态调整大小的数组”,请告诉我。 在此先感谢, 安迪 编辑/更新 也

  • 有两个问题看起来很相似,但它们不是同一个问题:这里和这里。它们都调用的方法,例如或,我知道这会返回一个。我要问的是如何将(class)对象本身转换为。我将在下面举例说明。 构建一个示例,如下所示。 上面的应该如下所示(显然有不同的数字)。 我想做的是按列名称和采取分组(按此顺序),这样我就可以得到一个由列名称和采取构建的多索引索引,如下所示。 我如何实现这一点?如果我做了,那么是一个实例。正确的做

  • 问题内容: 我想在Android中创建带有多列的表格。我看到的大多数示例都是2列。(我是Java和Android的新手。)我需要3-4列,并且应该能够在表中动态添加行。谁能给我提供示例代码。(我在WIN 7中使用Eclipse) 问题答案: 我假设您正在谈论的是TableLayout视图,而不是数据库中的表? 如果是这样,这是一个具有三列三行的表的XML示例。 每个 元素在表中创建一行,并且该元素