DS注册的EventHandler未命中事件

时间:2017-01-20 18:22:46

标签: osgi equinox

我通过EventHandlers注册了两个DS(声明性服务)。 现在,还有另一个DS服务正在调用EventAdmin.sendEvent()。 碰巧只有EventHandlers中的一个接收到事件,因为当事件被触发时,其中一个似乎没有准备好。 因此,当第二个EventHandler变得可用时,由于事件已被消耗,因此为时已晚。 这两个EventHandlers都在immediate=true注释中设置了@Component

是否有一种“优雅”的方式来解决这种情况?

1 个答案:

答案 0 :(得分:0)

这只是一个时间问题。生产者生产时并非所有消费者都准备好了。 Event Admin的重点是将事件生成器与消费者分离。但是,如果您需要确保所有消费者都能看到所有活动,那么您需要确保所有消费者在任何生产者生产之前都已准备好接收,或者选择另一种可以将过去事件传递给新到消费者的机制。