Edit: Um genau zu sein Ich denke, ich frage nach einer eleganten Möglichkeit, 2 Endpunkte zu spezifizieren, die ich 2 verschiedene Austäusche von einem Eingang von 1 Austausch senden möchte.Apache Camel - Was ist Camel am besten, um Fehler und gute Objekte gleichzeitig vom Komponentenendpunkt zu senden?
Ich weiß Camel ‚kann‘ dies tun - aber ich habe nur unelegant Methoden, bei denen ein Objekt sendet, die beiden Typen an eine Multicast() und Prozessoren auf jedem Abschnitt
ich dort erwarte Entfernen enthält sein möglicherweise mehrere Fehlermeldungen mit angehängten Quellobjekten. Ich könnte sie einfach als Ausnahmen werfen, aber das fühlt sich falsch an. Ich frage mich, was der "richtige" Ansatz sein könnte. Ich möchte fast nur in der Lage sein einen Fehler Endpunkt als Ziel für meine Komponente angeben
Zur Zeit habe ich
camel.addComponent("my", new MyComponent())
from(some source)
... processing // Lists of input objects as body of in
... onException()
.to("my:endpoint")
MyComponent < - MyEndpoint < - MyProducer
Ich möchte das verarbeiten Elemente in jedem List-Objekt, das bei MyProducer eintrifft. Ich verarbeite die Elemente und sende fehlerhafte Objekte an einen Endpunkt, und gute Objekte an einen Endpunkt.
Ich sehe keinen guten/eleganten Weg, dies zu erreichen. Wenn es einzelne Elemente (d. H. Keine Sammlung) war, kann ich einfach eine Ausnahme auslösen und sie in einem onException-Stream abfangen.
Aber ich möchte wirklich in der Lage sein, Gegenstände zu nehmen, und gute Gegenstände zu trennen und sie in eine Richtung und schlechte Gegenstände zu senden und ihnen einen anderen zu schicken.
Mit anderen Worten, ich möchte gleichzeitig 2 verschiedene Nachrichten an 2 verschiedene Endpunkte von der gleichen Eingabe von einem Endpunkt senden. (Der Endpunkt ist hier eigentlich nicht so wichtig, ich schreibe einen, es könnte jeder Prozessor sein).
Ich weiß, ich könnte ein zerlegbares Objekt mit guten und schlechten Objekten erstellen, dann Multicast und jede gute und schlechte Sektion auf verschiedenen Stücken verarbeiten, aber ich hätte gerne einen prägnanten wiederverwendbaren Mechanismus (zB eingebaut in einen Prozessor oder Endpunkt)
Sie sagen, dass "ich sehe keine gute/elegante Weise, dies zu erreichen, für einzelne Elemente", aber sicherlich ist ein einzelnes Element nur eine Sammlung mit einem Element. Wie können Sie eine einzelne Nachricht sowohl an einen fehlgeschlagenen als auch an einen erfolgreichen Endpunkt senden? Kannst du ein bisschen klarstellen? – Namphibian
Es ist einfach schlecht geschrieben, ich hätte lieber ein Semikolon als ein Komma setzen sollen. Es sollte eine Pause sein –
umgeschrieben jetzt um klarer zu sein –