Reactor混合推/拉模型如何工作?

时间:2019-07-15 19:00:53

标签: project-reactor

让我们在此简单订户使用的底部考虑Reactor An hybrid push/pull model示例:

flux.subscribe(s -> log.debug("received: {}", s));

将两次接收每个发射:一个来自onMessage(),另一个来自sink.onRequest()

这是所需的行为还是其他?

Flux<String> bridge = Flux.create(sink -> {
    myMessageProcessor.register(
      new MyMessageListener<String>() {

        public void onMessage(List<String> messages) {
          for(String s : messages) {
            sink.next(s); 
          }
        }
    });
    sink.onRequest(n -> {
        List<String> messages = myMessageProcessor.getHistory(n); 
        for(String s : message) {
           sink.next(s); 
        }
    });
});

我还认为onMessage()将在与main不同的线程上运行。

0 个答案:

没有答案