Dan*_*iel 0 asynchronous threadpool ejb-3.1 jboss7.x
我有一些带有@Asynchronous
方法的EJB 。
我试图弄清楚当池中配置的所有线程都在处理中并且又出现一个异步调用时会发生什么?
我在这篇文章中找到了一些答案,但它仅适用于 Websphere:
我想知道在 JBoss 上会发生什么,以及是否有一些选项可以像在 Websphere 上那样对线程进行排队。
我像这样配置线程池:
<subsystem xmlns="urn:jboss:domain:ejb3:1.2">
<async thread-pool-name="default"/>
<thread-pools>
<thread-pool name="default">
<max-threads count="10"/>
<keepalive-time time="100" unit="milliseconds"/>
</thread-pool>
</thread-pools>
...
</subsystem>
Run Code Online (Sandbox Code Playgroud)
我试图使用bounded-queue-thread-pool
insinde of <thread-pools>
element,但它不起作用。
谢谢你的帮助
小智 5
下面是对池的描述。
” 一个线程池执行器,有一个无界队列。这样的线程池有一个核心大小和一个没有上限的队列。当一个任务被提交时,如果运行的线程数小于核心大小,则创建一个新线程. 否则,任务被放入队列中。如果允许向此类执行器提交过多任务,则可能会出现内存不足的情况。“name”属性是创建的执行器的名称。必须使用“max-threads”属性来指定线程池大小。嵌套的“keepalive-time”元素可用于指定池线程在空闲时应保持运行的时间量;如果未指定,线程将一直运行到 executor 关闭。“thread-factory”元素指定用于创建工作线程的特定线程子系统线程工厂的 bean 名称。通常不会为 EJB3 线程池设置它,而是会使用适当的默认线程工厂。”
资料来源:http : //www.jboss.org/schema/jbossas/jboss-as-ejb3_1_2.xsd