我通过EventHandlers
注册了两个DS
(声明性服务)。
现在,还有另一个DS服务正在调用EventAdmin.sendEvent()
。
碰巧只有EventHandlers
中的一个接收到事件,因为当事件被触发时,其中一个似乎没有准备好。
因此,当第二个EventHandler
变得可用时,由于事件已被消耗,因此为时已晚。
这两个EventHandlers
都在immediate=true
注释中设置了@Component
。
是否有一种“优雅”的方式来解决这种情况?
答案 0 :(得分:0)
这只是一个时间问题。生产者生产时并非所有消费者都准备好了。 Event Admin的重点是将事件生成器与消费者分离。但是,如果您需要确保所有消费者都能看到所有活动,那么您需要确保所有消费者在任何生产者生产之前都已准备好接收,或者选择另一种可以将过去事件传递给新到消费者的机制。