tasklaunchrequest-transform игнорирует полезную нагрузку

У меня есть поток, состоящий из

Источник | ProcessorP1 | ProcessorP2 | ProcessorP3 | ProcessorP4 | Раковина

Я использую ProcessorP1 как свой tasklaunchrequest-transform процессор. Я использую это для запуска задачи через task-launcher. Теперь мне нужно передать свои полезные данные от ProcessorP1 к ProcessorP2, а также вызвать задачу; TaskLaunchRequest не может нести полезную нагрузку, поскольку она игнорируется.

https://github.com/spring-cloud-stream-app-starters/tasklaunchrequest-transform/blob/master/spring-cloud-starter-stream-processor-tasklaunchrequest-transform/README.adoc < / а>

Есть ли способ передать полезную нагрузку следующему процессору в моем потоке?


person Kanika Sharma    schedule 10.10.2017    source источник
comment
Не могли бы вы пояснить, что вы имеете в виду под payload из Processor1. payload будет вашим TaskLaunchRequest, который будет перенесен в task-launcher. tasklaunchrequest-transform игнорирует любую входящую полезную нагрузку и заголовки.   -  person sobychacko    schedule 11.10.2017
comment
ProcessorP1 принимает входные данные от Source, затем отбрасывает их и создает новый TaskLaunchRequest, который отправляет по своему выходному каналу. Затем он потребляется task-launcher, подключенным к крану, а также ProcessorP2. Я хотел знать, есть ли способ НЕ игнорировать входящую полезную нагрузку от Source и иметь возможность передать ее ProcessorP2 или включить эту входящую полезную нагрузку в сам TaskLaunchRequest.   -  person Kanika Sharma    schedule 12.10.2017


Ответы (1)


Поскольку tasklaunchrequest-transform-processor игнорирует входящую полезную нагрузку, для выполнения того, что вы ищете, вам необходимо настроить процессор, то есть вам нужно изменить логику в процессоре, чтобы он принимал входящую полезную нагрузку и каким-то образом прикреплялся к TaskLaunchRequest. Если входящая полезная нагрузка относится к типу String, вы можете добавить это как свойство среды или аргумент командной строки в TaskLaunchRequest - а затем по существу передать этот измененный запрос вниз по потоку. По сути, вам нужно заменить ваш ProcessorP1 на пользовательский takslaunchrequest-transform-processor, который делает это.

См. Здесь некоторые рекомендации по установке исправлений для готовых приложений: https://docs.spring.io/spring-cloud-stream-app-starters/docs/current/reference/htmlsingle/#_patching_pre_built_applications или создание новых: https://docs.spring.io/spring-cloud-stream-app-starters/docs/current/reference/htmlsingle/#_creating_new_stream_application_starters_and_generating_artifacts

person sobychacko    schedule 12.10.2017
comment
Спасибо @sobychacko. Посмотрю размещенные ссылки. - person Kanika Sharma; 12.10.2017
comment
По этому поводу есть важная проблема (github. ru / spring-cloud-stream-app-starters /). Не стесняйтесь поделиться своими выводами и другими идеями о том, как вы ее решили. - person Sabby Anandan; 25.10.2017