我使用amdatu并使用osgi事件侦听器处理多个包,问题是当我创建更多线程时,事件处理程序正在工作,但它给出的响应有时间延迟
所以任何知道这个问题的人,说一个解决方法
发布于 2015-11-25 14:52:57
在Amdatu中,Apache felix event admin是默认的事件处理程序。
您必须增加线程池大小属性(org.apache.felix.eventadmin.ThreadPoolSize)
在Felix Event admin documentation中找到以下内容。
Apache Felix Event Admin实现正在尝试尽可能快地交付事件。从不同线程发送的事件是并行发送的。来自同一线程的事件按照它们被接收的顺序发送(这是根据规范)。可以配置用于事件处理程序的超时。如果事件处理程序处理事件的时间超过配置的超时时间,则会将其列入黑名单。一旦处理程序在黑名单中,就不会再发送任何事件。
用于事件传递的线程池的大小。默认值为20。当事件数量较多时会增加。小于2的值将触发默认值。如果池耗尽,则会阻止事件传递,直到池中有线程可用为止。除非为接收事件处理程序配置了忽略超时,否则每个事件都是在池中的线程中传递的。
https://stackoverflow.com/questions/33729217
复制相似问题