Amdatu OSGI事件处理程序响应缓慢

时间:2015-11-16 05:48:29

标签: amdatu

我正在使用amdatu并将osgi事件监听器用于多个bundle 问题是当我创建更多线程时,事件处理程序正在工作,但它给出了时间延迟的响应

所以任何人都知道这个问题,说一个修复

1 个答案:

答案 0 :(得分:1)

在Amdatu中,Apache felix事件管理员是默认的事件处理程序。

你必须增加线程池大小属性(org.apache.felix.eventadmin.ThreadPoolSize)

在Felix Event admin documentation中找到以下内容。

Apache Felix Event Admin实施正在尝试尽快传递事件。从不同线程发送的事件是并行发送的。来自同一线程的事件按接收顺序发送(这是根据规范)。可以配置用于事件处理程序的超时。如果事件处理程序花费的时间超过配置的超时时间来处理事件,则会将其列入黑名单。一旦处理程序处于黑名单中,它就不会再发送任何事件。

用于事件传递的线程池的大小。默认值为20.在发生大量事件时增加。小于2的值会触发默认值。如果池已耗尽,则会阻止事件传递,直到池中的线程可用。除非为接收事件处理程序配置了忽略超时,否则每个事件都在池中的线​​程中传递。