【问题标题】:Publish from Flux<String> into a Flux<List<String>> only when source is updated仅在更新源时从 Flux<String> 发布到 Flux<List<String>>
【发布时间】:2020-05-28 12:26:32
【问题描述】:

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

使用以下内容,它会无限循环地发布值,即使没有任何改变

    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>>

列表变了怎么能发布呢?

【问题讨论】:

    标签: java server-sent-events reactive


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      相关资源
      最近更新 更多