【问题标题】:Looking for elegant way of generation Reactor hot stream寻找优雅的生成Reactor热流的方式
【发布时间】:2020-01-30 18:07:53
【问题描述】:

我有Reactor 热流,它使用响应式Lettuce API 轮询Redis

Flux
                    .generate(sink -> sink.next(0))
                    .flatMap(
                            r -> pollingConnection
                                    .reactive()
                                    .brpop(pollingTimeout, queue)
                    ...
                    .subscribe(subscription);

没有flatMap 有没有办法做到这一点?任何异步接收器?

【问题讨论】:

  • 要做做什么?你能更好地描述一下你想要达到的目标吗?
  • 上面的代码是使用redis列表作为源的无限热流。问题不是“如何做”,而是以更优雅的方式重写generate(sink -> sink.next(0)).flatMap(...) 的可能性。你在下面回答了我的问题。谢谢!

标签: java project-reactor


【解决方案1】:

对于常规的非阻塞轮询,我想您最好使用Flux.interval 而不是Flux.generate(与flatMap 结合使用,顺便说一句,会产生256 个即时请求)

由于 API 似乎基于 brpop Publisher,因此如果您想触发多个弹出窗口,您别无选择,只能使用 flatMap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多