Eu uso o Spring boot 3.1.x para alguma interação com o shell. Quero transmitir texto de um método para o console.
Eu tentei algo assim:
@ShellMethod(key = "stream")
public Flux<String> streamMe(){
List<String> cities = List.of("London", "Paris", "Rome", "Amsterdam","Boston");
Flux<String> flux = Flux.fromIterable(cities);
return flux.delayElements(Duration.ofSeconds(2));
}
Mas ao chamá-lo do shell recebo a saída FluxConcatMapNoPrefetch na tela
Spring Shell espera que os comandos sejam concluídos, para que possa imprimir o resultado no console. No entanto, quando você retorna um Flux que possui um fluxo contínuo de elementos, ele pode não se comportar conforme o esperado em um shell interativo.
Uma maneira de imprimir o fluxo de elementos no console é inscrever-se no fluxo e tratar os resultados individualmente.