我正在使用 amdatu 并为多个捆绑使用 osgi 事件侦听器,问题是当我创建更多线程时,事件处理程序正在工作,但它给出的响应有时间延迟
所以任何知道这个问题的人,说一个修复
在 Amdatu 中,Apache felix 事件管理员是默认的事件处理程序。
您必须增加线程池大小属性 (org.apache.felix.eventadmin.ThreadPoolSize)
在 Felix Event 管理文档中找到以下内容。
Apache Felix Event Admin 实现正在尝试尽快交付事件。从不同线程发送的事件是并行发送的。来自同一线程的事件按照接收顺序发送(这是根据规范)。可以配置用于事件处理程序的超时。如果事件处理程序处理事件的时间超过配置的超时时间,则将其列入黑名单。一旦处理程序在黑名单中,就不会再发送任何事件。
用于事件传递的线程池的大小。默认值为 20。在大量事件的情况下增加。小于 2 的值会触发默认值。如果池已用尽,则事件传递将被阻止,直到池中的线程可用。除非为接收事件处理程序配置了忽略超时,否则每个事件都在池中的线程中传递。