使用 lettuce 反应命令订阅 redis 频道 (pubsub)
Subscribe to redis channel (pubsub) using lettuce reactive commands
我正在使用 io.lettuce.core 库,但在使用 RedisPubSubReactiveCommands
界面订阅频道时遇到问题。
我有一个 StatefulRedisPubSubConnection
和一个正在尝试订阅的活动的 redis 集群。
connection.sync().subscribe("channel")
和 connection.async().subscribe("channel")
一样工作正常。但是,当我像这样使用生菜提供的反应式 'hot observable' 接口时:
connection.reactive().subscribe(channels).subscribe();
connection.reactive().observeChannels().doOnNext(this::notifyObservers).subscribe();
不会注册为redis上的订阅动作。我觉得我正在密切关注 lettuce documentation 中给出的示例。
我正在为一个接受热 Flux
Observable 的接口编程,我即将用我自己的反应式包装器包装同步或异步连接接口并将它们放入管道中。我在这里做错了什么?
以防其他人遇到同样的问题,事实证明我将一个 Set<String>
对象传递给一个接受可变参数 Object...
的函数,但没有意识到它正在处理整个集合作为单个元素,而不是将其解析为可变参数数组。
我会把它留给其他人从我的愚蠢错误中吸取教训。
我正在使用 io.lettuce.core 库,但在使用 RedisPubSubReactiveCommands
界面订阅频道时遇到问题。
我有一个 StatefulRedisPubSubConnection
和一个正在尝试订阅的活动的 redis 集群。
connection.sync().subscribe("channel")
和 connection.async().subscribe("channel")
一样工作正常。但是,当我像这样使用生菜提供的反应式 'hot observable' 接口时:
connection.reactive().subscribe(channels).subscribe();
connection.reactive().observeChannels().doOnNext(this::notifyObservers).subscribe();
不会注册为redis上的订阅动作。我觉得我正在密切关注 lettuce documentation 中给出的示例。
我正在为一个接受热 Flux
Observable 的接口编程,我即将用我自己的反应式包装器包装同步或异步连接接口并将它们放入管道中。我在这里做错了什么?
以防其他人遇到同样的问题,事实证明我将一个 Set<String>
对象传递给一个接受可变参数 Object...
的函数,但没有意识到它正在处理整个集合作为单个元素,而不是将其解析为可变参数数组。
我会把它留给其他人从我的愚蠢错误中吸取教训。