Весной Это Произойдет. Отправить слабое уведомление WebFlux

#spring-webflux #spring-integration-dsl #message-channel

Вопрос:

Мне нужно отправить слабое сообщение во многих частях потока информации об обработке файлов и продолжить основной поток.

Я не нашел абсолютно простого способа сделать это

Вот мое решение до сих пор:

Объявите канал очереди для получения сообщений, которые необходимо отправить

 @Bean
MessageChannel slackChannel() {
  return MessageChannels.queue(SLACK_CHANNEL).get();
}
 

Каждое сообщение в этом канале будет отправлено в Slack (применяя некоторое преобразование перед отправкой)

 @Bean
    IntegrationFlow startFlow() {

        return IntegrationFlows
                .from(FILE_CHANNEL)
                .filter(myFilter)
                .handle(myService, "doSomething")
                .transform(doSomeTransformation)

                .channel(SLACK_CHANNEL)

                .split()
                .aggregate(myAggregator)
                .transform(anotherTransformer)
                .channel(ANOTHER_CHANNEL)
                .get();
    }
 

Здесь слабый поток

 @Bean
    IntegrationFlow sendFileProcessingInfo() {
        return IntegrationFlows
                .from(SLACK_CHANNEL)
                .transform(Message.class, this::prepareSlackMessage)
                .handle(WebFlux.outboundGateway(m ->
                        UriComponentsBuilder.fromUriString(slackConfigurationProperties.getUrl())
                                .build()
                                .toUri())
                .httpMethod(HttpMethod.POST)
                .expectedResponseType(String.class))
                .log()
                .get();
    }
 

Одна из проблем заключается в том, что поток не продолжается после отправки сообщения в канал SLACK_CHANNEL в середине основного потока.

Другая проблема заключается в том, что sendFileProcessingInfo, по-видимому, никогда не активируется

Кроме того, у меня есть некоторые сомнения в том, что тип ожидаемого ответа должен быть строковым.

Итак, каким должно быть наиболее подходящее решение для отправки HTTP-сообщений в середине потока? и в чем может быть причина этих проблем?

Кроме того, выполнение преобразования для подготовки сообщения slack изменит объект основного потока?

Я буду признателен за любую помощь в этом.

Thanks!