DS 注册的 EventHandler 未命中事件
DS registered EventHandler misses event
我通过 DS
(声明式服务)注册了两个 EventHandlers
。
现在,有另一个 DS 服务调用 EventAdmin.sendEvent()
。
碰巧只有 EventHandlers
中的一个接收到事件,因为当事件被触发时其中一个似乎还没有准备好。
因此,当第二个 EventHandler
可用时,为时已晚,因为事件已经被消耗掉了。
EventHandlers
都在 @Component
注释中设置了 immediate=true
。
是否有 "elegant" 方法来解决这种情况?
这只是时间问题。当生产者生产时,并不是所有的消费者都准备好了。 Event Admin 的重点是将事件生产者与消费者分离。但是,如果您需要确保所有消费者都能看到所有事件,那么您将需要确保所有消费者都准备好在任何生产者生产之前接收,或者 select 另一种机制可以将过去的事件传递给新到达的消费者.
我通过 DS
(声明式服务)注册了两个 EventHandlers
。
现在,有另一个 DS 服务调用 EventAdmin.sendEvent()
。
碰巧只有 EventHandlers
中的一个接收到事件,因为当事件被触发时其中一个似乎还没有准备好。
因此,当第二个 EventHandler
可用时,为时已晚,因为事件已经被消耗掉了。
EventHandlers
都在 @Component
注释中设置了 immediate=true
。
是否有 "elegant" 方法来解决这种情况?
这只是时间问题。当生产者生产时,并不是所有的消费者都准备好了。 Event Admin 的重点是将事件生产者与消费者分离。但是,如果您需要确保所有消费者都能看到所有事件,那么您将需要确保所有消费者都准备好在任何生产者生产之前接收,或者 select 另一种机制可以将过去的事件传递给新到达的消费者.