9.4. 管理的调度执行器服务

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

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

  • context-service :按名称引用现有上下文服务。如果指定,引用的上下文服务会在向 executor 提交任务时捕获调用上下文,然后在执行任务时使用该调用上下文。
  • hung-task-threshold :此属性供未来使用。
  • keepalive-time :定义内部线程可以空闲的时间,以毫秒为单位。属性默认值为 60000
  • reject-policy :定义要在 executor 拒绝任务时使用的策略。属性值可能是默认的 ABORT,这意味着应抛出异常,或 RETRY_ABORT,这意味着执行者将尝试再次提交一次,然后再抛出异常。
  • core-threads :定义计划执行器使用的最少线程数。
  • JNDI -name :定义受管调度执行器服务应放在 JNDI 中的位置。
  • 长时间运行-tasks :此属性供未来使用。
  • thread-factory :按名称引用现有托管线程工厂,以处理内部线程的创建。如果没有指定,则内部将创建和使用具有默认配置的管理线程工厂。

示例:添加新管理的已调度执行器服务

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:add(jndi-name=java:jboss/ee/concurrency/scheduledexecutor/newManagedScheduledExecutorService, core-threads=7, context-service=default)

此操作需要重新加载。

示例:更改受管的已调度执行器服务

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:write-attribute(name=core-threads, value=10)

此操作需要重新加载。类似地,您可以更改其他属性。

示例:删除受管的已调度执行器服务

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:remove()

此操作需要重新加载。