【发布时间】:2015-03-28 22:21:53
【问题描述】:
我的 Spring 应用程序中似乎丢失了发送到反应器的消息。我怀疑这是由于在 Spring 容器的生命周期中我开始产生消息的时间。
在我的特定用例中,有一个 Spring Bean 在启动时执行一些初始化。此初始化的一部分涉及生成发送到 Reactor 的消息。
我怀疑 Spring 注册消费者的顺序存在问题,并且初始化代码在消费者注册之前已经运行。如果我在启动后手动运行代码,例如向调用相同代码的控制器发出请求,然后将消息发送给消费者。
我尝试了各种方法来更改初始化代码运行的生命周期中的时间,例如ApplicationListener<ContextRefreshedEvent>,ApplicationListener<ContextStartedEvent>,@PostConstruct方法,实现InitializingBean等等。这些方法似乎都不起作用。
我的消费者使用 @reactor.spring.annotation.Consumer 注释,方法使用 @reactor.spring.annotation.Selector 注释。如果相关,我使用 Spring Boot 和自动配置的 Reactor (@EnableReactor )。
【问题讨论】:
标签: spring reactor project-reactor