1

我有包括tasklaunchrequest变换忽略净荷

源流| 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

有没有一种方式来传递有效载荷到下一个处理器中我流?

+0

你能否澄清你的意思是从'Processor1'了'payload'什么。 'payload'将成为你的'TaskLaunchRequest',它将被传送到'task-launcher'。 'tasklaunchrequest-transform'忽略任何传入的有效负载和标题。 – sobychacko

+0

'ProcessorP1'从'Source'获取输入,然后丢弃它并创建一个新的'TaskLaunchRequest',它在其输出通道上发送。然后这个消息被附在tap上的'task-launcher'消耗掉,并且也被'ProcessorP2'消耗。我想知道是否有办法** NOT **忽略来自'Source'的输入有效载荷,并能够将它传递给'ProcessorP2',或将该输入有效载荷包含在TaskLaunchRequest本身中。 –

回答

0

由于tasklaunchrequest-transform-processor忽略了传入的有效载荷,为了实现您要查找的内容,您需要自定义处理器,即必须更改处理器中的逻辑,以便将传入的有效载荷和附加到莫名其妙地,TaskLaunchRequest。如果传入的有效负载是String类型,则可以将其添加为TaskLaunchRequest中的环境属性或命令行参数 - 然后将该已修改的请求通过该流向下传递。基本上,你需要用你自己的takslaunchrequest-transform-processor替换你的ProcessorP1。

看到这里打补丁的开箱即用的应用程序的一些准则: 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

+0

谢谢@sobychacko。我会看看发布的链接。 –

+0

这个问题有一个相关的问题(https://github.com/spring-cloud-stream-app-starters/app-starters-release/issues/46)。随意分享你的发现和其他想法,解决它的方法。 –