DS 注册的 EventHandler 未命中事件

DS registered EventHandler misses event

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

是否有 "elegant" 方法来解决这种情况?

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