Wie kann ich einen Rückruf durchführen, nachdem jede Nachricht erfolgreich an JMS gesendet wurde oder fehlschlägt?Alpakka - Rückruf, wenn Nachricht verarbeitet wird
val jmsSink = JmsSink.textSink(
JmsSinkSettings(connectionFactory).withQueue("My_Queue")
)
Source(Stream.from(1))
.map(_.toString)
.runWith(jmsSink)
spezifischeres Beispiel
// creating a sourceQueue which is bound to jmsSink
val sourceQueue: SourceQueueWithComplete[String] =
Source.queue[String](bufferSize, OverflowStrategy.backpressure)
.to(jmsSink)
.run()
Der Client sendet Artikel zu sourceQueue
:
val result: Future[QueueOfferResult] = sourceQueue offer "my-item"
val result
ist das Ergebnis das Element in sourceQueue
Einfügen, bedeutet es nicht, dass es noch an JMS gesendet wird. Ich muss ein Ereignis auslösen, wenn das Element den Senkenprozess durchlaufen hat und in die JMS-Warteschlange eingefügt wurde.
Dank für die Beantwortung @chunjef. 'jmsSource.runForeach (println)' würde das Objekt aus der Warteschlange entfernen, oder? Ich fügte meiner Frage einige Details hinzu, um zu klären, was genau ich brauche. – Feyyaz