1

ich einen Strom haben, bestehend austasklaunchrequest-Transformation ignoriert die Nutzlast

Quelle | ProzessorP1 | ProzessorP2 | ProzessorP3 | ProzessorP4 | Sink

I ProcessorP1 als mein tasklaunchrequest-transform Prozessor bin. Ich verwende dies, um eine Aufgabe über task-launcher zu starten. Jetzt muss ich meine Payload von ProcessorP1 zu ProcessorP2 weiterleiten und auch die Aufgabe aufrufen; Die TaskLaunchRequest hat keine Möglichkeit, die Nutzlast zu tragen, da sie ignoriert wird.

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

Gibt es eine Möglichkeit auf der Nutzlast zum nächsten Prozessor in meinem Stream zu übergeben?

+0

Können Sie erklären, was Sie von der 'payload' von' Processor1' bedeuten. Die 'Nutzlast' wird Ihre' TaskLaunchRequest' sein, die zum 'Task-Launcher' übertragen wird. 'tasklaunchrequest-transform' ignoriert alle eingehenden Nutzdaten und Header. – sobychacko

+0

Das 'ProcessorP1' nimmt die Eingabe von' Source', es verwirft es und erstellt ein neues 'TaskLaunchRequest' welches es auf seinem Ausgabekanal sendet. Dies wird dann von dem "task-launcher" verbraucht, der an dem Tap angehängt ist und wird auch von "ProcessorP2" verbraucht. Ich wollte wissen, ob es eine Möglichkeit gibt, die eingehenden Nutzdaten von Source zu ignorieren und diese an "ProcessorP2" weitergeben zu können, oder die eingehende Payload in die TaskLaunchRequest selbst aufzunehmen. –

Antwort

0

Da die tasklaunchrequest-transform-processor die eingehende Nutzlast ignoriert, müssen Sie, um das zu erreichen, was Sie suchen, den Prozessor anpassen, dh Sie müssen die Logik im Prozessor so ändern, dass er die eingehenden Nutzdaten und Attaches annimmt die TaskLaunchRequest irgendwie. Wenn die eingehende Payload ein String-Typ ist, können Sie das als Umgebungseigenschaft oder als Befehlszeilenarg in TaskLaunchRequest hinzufügen. Geben Sie diese modifizierte Anforderung dann im Wesentlichen über den Stream weiter. Im Grunde müssen Sie Ihren ProzessorP1 durch einen benutzerdefinierten takslaunchrequest-transform-processor ersetzen, der dies tut.

Sehen Sie hier einige Richtlinien für die aus den Box-Anwendungen Patchen: https://docs.spring.io/spring-cloud-stream-app-starters/docs/current/reference/htmlsingle/#_patching_pre_built_applications oder neue zu schaffen: https://docs.spring.io/spring-cloud-stream-app-starters/docs/current/reference/htmlsingle/#_creating_new_stream_application_starters_and_generating_artifacts

+0

Danke @sobychacko. Ich schaue mir die geposteten Links an. –

+0

Es gibt ein relevantes Problem in dieser Angelegenheit (https://github.com/spring-cloud-stream-app-starters/app-starters-release/issues/46). Fühlen Sie sich frei, Ihre Ergebnisse und andere Ideen zu teilen, wie Sie es gelöst haben. –