让我们在此简单订户使用的底部考虑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
不同的线程上运行。