Поток вывода одного потока на другой - PullRequest
0 голосов
/ 24 марта 2020

Я получаю данные из messageHandler (kafka) и обрабатываю их с помощью servicehandler, чтобы получить какой-то результат

serviceHandler.process(message).getMessage().toString()

Теперь мне нужно вывести этот поток результатов, чтобы всякий раз, когда новая запись поступает через обработчик сообщений, обрабатывается и выводится во внешний интерфейс (angular)

@Autowired
MessageHandler messageHandler;
@Autowired
ServiceHandler serviceHandler;

public void runHandler() {
    Flux<Message> messages = messageHandler.flux();             
    messages.subscribeOn(Schedulers.parallel()) 
    .doOnNext(message -> serviceHandler.process(message).getMessage().toString())
    .subscribe();
}
public Flux pushresult(){ ???? }

Кто-нибудь знает путь к тому, что мне нужно?

1 Ответ

0 голосов
/ 02 апреля 2020

Посмотрите на .map () и .flatMap (). В вашем случае это выглядит как map (), но если следующий вызываемый сервис также возвращает Mono / Flux, который вам нужен .flatMap (), или вы получите что-то вроде:

Flux<Flux<String>>

вместо

Flux<String>

.doOnNext предназначен для побочных эффектов, таких как регистрация.

...