将传统消息的产生/排队转换为反应堆中的通量

时间:2019-07-01 15:24:57

标签: java spring spring-boot project-reactor reactor

我具有许多MessageProducer实现的现有接口链。

interface MessageProducer {
    void produce(MessageQueue messageQueue);
}

interface MessageQueue {
    void submit(Message message);
}

如何在界面更改尽可能少的情况下使其适应reactor Flux?像

class FluxMessageQueueAdapter implements MessageQueue {
   private Flux<Message> flux = ... 

   public void submit(Message message) {
      flux.next(message);
   }
}

1 个答案:

答案 0 :(得分:0)

似乎一个解决方案可能是

MessageProducer producer = 
Flux.push((emitter) -> {
            FluxMessageQueueAdapter adapter = new FluxMessagerQueueAdapter(emitter);
            producer.produce(adapter);
            emitter.complete();
    })
        .subscribe(System.out::println);