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)。隨意分享你的發現和其他想法,解決它的方法。 –