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()
此操作需要重新加载。