9.3. 受管执行器服务


受管执行器服务 (javax.enterprise.concurrent.ManagedExecutorService) 允许 Jakarta EE 应用提交异步执行任务。JBoss EAP 处理托管执行器服务实例,因此 Jakarta EE 应用程序无法调用任何与生命周期相关的方法。

受管 executor 服务并发程序的属性包括:

  • context-service :可选.按名称引用现有上下文服务。如果指定,引用的上下文服务会在向 executor 提交任务时捕获调用上下文,然后在执行任务时使用该调用上下文。
  • JNDI -name :定义受管线程工厂应放置在 JNDI 中。
  • max-threads :定义执行者使用的最大线程数。如果未定义,则使用来自 core-threads 的值。
  • thread-factory :按名称引用现有托管线程工厂,以处理内部线程的创建。如果没有指定,则内部将创建和使用具有默认配置的管理线程工厂。
  • core-threads :定义执行者要使用的最少线程数。如果未定义此属性,则根据处理器数量计算默认值。不建议值为 0。有关如何使用此值来确定排队策略的详细信息,请参阅 queue-length 属性。
  • keepalive-time :定义内部线程可以空闲的时间,以毫秒为单位。属性默认值为 60000
  • queue-length :指定 executor 的任务队列容量。值 0 表示直接移交和可能的拒绝。如果此属性未定义或设置为 Integer.MAX_VALUE,这表示应当使用一个未绑定的队列。所有其他值指定准确的队列大小。如果使用未绑定队列或直接移交,则需要大于 0 的内核 线程 值。
  • hung-task-threshold :定义时间(以毫秒为单位),之后任务被托管执行器服务视为挂起并且强制中止。如果值为 0( 默认值),则任务永远不会被视为挂起。
  • 长时间运行任务 :建议优化长时间运行任务的执行,默认值为 false
  • reject-policy :定义要在 executor 拒绝任务时使用的策略。属性值可以是默认的 ABORT,这意味着应抛出异常,或 RETRY_ABORT,这意味着执行者会在抛出异常之前尝试再次提交一次异常。

示例:添加新的托管执行器服务

/subsystem=ee/managed-executor-service=newManagedExecutorService:add(jndi-name=java:jboss/ee/concurrency/executor/newManagedExecutorService, core-threads=7, thread-factory=default)
Copy to Clipboard Toggle word wrap

示例:更改受管执行器服务

/subsystem=ee/managed-executor-service=newManagedExecutorService:write-attribute(name=core-threads,value=10)
Copy to Clipboard Toggle word wrap

此操作需要重新加载。同样,您也可以更改其他属性。

示例:删除受管执行器服务

/subsystem=ee/managed-executor-service=newManagedExecutorService:remove()
Copy to Clipboard Toggle word wrap

此操作需要重新加载。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat