Публикация sh из Flux <String>в Flux только когда источник обновлен - PullRequest
0 голосов
/ 28 мая 2020

Я хотел бы опубликовать sh список ключей, но только когда ключи изменяются.

При следующих условиях он публикует в бесконечном l oop значениях, даже если ничего не изменилось

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

Как можно было sh опубликовать список только тогда, когда он изменился?

1 Ответ

0 голосов
/ 28 мая 2020

independentUntilChanged : «подавить повторяющиеся элементы, испускаемые Observable»

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

Это опубликует sh весь список ожидающих пользователей, ответ будет публиковаться всякий раз, когда список обновляется (элемент удаляется или добавляется)

...