java - 仅当源更新时才从 Flux<String> 发布到 Flux<List<String>>

标签 java server-sent-events reactive

我想发布 key 列表,但仅限于修改 key 时。

通过以下内容,即使没有任何更改,它也会以无限循环的方式发布值

    RedisReactiveCommands<String, String> commands = connection.reactive();
    return commands
            .keys(String.format(AWAITING_USER_KEY_FORMAT, "*")) // returns Flux<String>
            .collectList() // returns Mono<List<String>>
            .repeat(); // returns Flux<List<String>>

如何才能仅在列表发生变化时才发布列表?

最佳答案

distinctUntilChanged:“抑制 Observable 发出的重复项”

RedisReactiveCommands<String, String> commands = connection.reactive();
return commands
          .keys(String.format(AWAITING_USER_KEY_FORMAT, "*"))
          .collectList()
          .repeat()
          .distinctUntilChanged();

这将发布等待用户的整个列表,每当列表更新(删除或添加元素)时都会发布响应

关于java - 仅当源更新时才从 Flux<String> 发布到 Flux<List<String>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62064690/

相关文章:

java - 使用 IP 进行本地和远程调用时,Spring Web-Flux Server Sent Events 不起作用

javascript - 如何在 RxJS 中使用 concat 运算符,但忽略第一个可观察的所有排放

java - 应用程序中的可修改列表使用什么数据结构?

java - 寻找服务器发送事件规范客户端的 Java 实现。

java - 预递增数组对象 (++frequency[i]; ) 是什么意思?

javascript - Nodejs - socketio - 更新所有浏览器窗口中的信息

Angular 4 Reactive Forms 切换隐藏表单元素的验证

typescript - RxJS 处理闭包变量

java - 从源代码构建 Mockito

java - 检索用户帐户