根据文档RedisMessageListnerContainer
-
public void addMessageListener(MessageListener listener, Topic topic):
将消息侦听器添加到(可能正在运行的)容器中。如果容器正在运行,则侦听器会尽快开始接收(匹配)消息。
上面的引用似乎表明没有真正的方法知道侦听器何时准备好 - 或者订阅是否成功。
那么,鉴于我发布和订阅了一个频道 - 我应该等多久才能开始发布?在我的测试中,只需执行
container.addMessageListener(listener, topic);
for(int i = 0; i < 10; i++) {
template.publish(topic, content);
}
意味着我没有收到我自己发布的前 3-5 条消息。
我如何在不求助于的情况下解决这个问题Thread.sleep()
?是否可以收到有关连接失败/成功等的通知?