首页 > 解决方案 > 使用 lettuce 响应式命令订阅 redis 频道 (pubsub)

问题描述

我正在使用io.lettuce.core库,但在使用该界面订阅频道时遇到问题RedisPubSubReactiveCommands

我有一个StatefulRedisPubSubConnection我正在尝试订阅的活动 redis 集群。

connection.sync().subscribe("channel")工作正常,就像connection.async().subscribe("channel"). 但是,当我使用生菜提供的反应式“热可观察”接口时,如下所示:

connection.reactive().subscribe(channels).subscribe();
connection.reactive().observeChannels().doOnNext(this::notifyObservers).subscribe();

它不会在 redis 上注册为订阅操作。我觉得我正在密切关注生菜文档中给出的示例。

我正在为一个接受热FluxObservable 的接口进行编程,并且我正在接近用我自己的反应式包装器包装同步或异步连接接口并将它们扔到管道中。我在这里做错了什么?

标签: javaredisproject-reactorlettuce

解决方案


万一其他人遇到同样的问题,事实证明我将一个Set<String>对象传递给一个接受可变参数的函数,Object...但没有意识到它将整个集合视为单个元素,而不是将其解析为可变参数数组。

我会把它留给其他人从我的愚蠢错误中学习。


推荐阅读