Frage

Ich versuche, Remote-Chunking im Spring-Batch mithilfe von Spring-Integration und amqp (rabbitmq) zu implementieren.

Ich kann nicht verstehen, wie ChunkMessageChannelItemWriter Antworten im Remote-Chunking-Test unten sammelt

https://github.com/spring-projects/spring-batch/blob/master/spring-batch-integration/src/test/resources/org/springframework/batch/integration/chunk/RemoteChunkStepIntegrationTests-context.xml

Wie funktioniert es ?Sendet es eine Nachricht, wartet auf die Antwort, empfängt die Antwort und dann noch einmal eine zweite Nachricht, wartet auf die Antwort auf die zweite Nachricht und empfängt die Antwort auf die zweite Nachricht und so weiter?

Oder sendet es alle Nachrichten asynchron, wartet auf Antworten und empfängt dann Antworten, sobald sie auf dem Antwortkanal eintreffen?

Wenn wir uns hier auf die Remote-Chunking-Dokumentation beziehen

http://docs.spring.io/spring-batch/reference/html/springBatchIntegration.html#asynchronous-processors

Es werden eingehende und ausgehende Adapter verwendet.Wenn ChunkMessageChannelItemWriter Antworten erhält, warum brauchen wir dann Adapter?Und warum werden auf der Slave-Seite sowohl Adapter als auch Service-Aktivator verwendet?

Kann mir bitte jemand helfen, die Funktionsweise zu verstehen, da es anhand der Dokumentation schwer zu verstehen ist?

War es hilfreich?

Lösung

Das ist nur ein Testfall – alles läuft lokal – schauen Sie sich das an JMS-Testfall für ein realeres Beispiel.Der Channel-Item-Writer sendet alle Chunks mithilfe eines Outbound-Channel-Adapters an JMS.

Die Remote-Seite (JMS-Listener-Container) empfängt die Chunks, verarbeitet sie und sendet die Antworten an die replies Warteschlange.

Jedes Mal, wenn der Writer zum Schreiben eines Chunks aufgerufen wird, prüft er, ob Antworten vorhanden sind, und unterbricht ggf. den Vorgang, wenn die Drosselungsgrenze überschritten wird.

Wenn alle Chunks geschrieben sind, in afterStep(), wartet es auf den Rest der Ergebnisse.

Beim lokalen Testfall funktioniert das alles genauso, da der Chunk-Handler die Antworten in einen Warteschlangenkanal schreibt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top