0

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

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

4

1 回答 1

1

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

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

在 Felix Event 管理文档中找到以下内容。

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

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

于 2015-11-25T06:52:56.537 回答