Starten Sie einen Prozess, indem Sie eine Nachricht aus einer AMQP-Warteschlange empfangen.
Geschrieben vonOssi Galkin Vor über einer Woche aktualisiertTable of contentsMit dem Warteschlangentrigger können Prozesse für Nachrichten ausgelöst werden, die aus einer AMQP 1.0-Warteschlange empfangen werden. Der Warteschlangentrigger verwendet die Nachricht aus der Warteschlange, wenn eine neue Nachricht in der Warteschlange verfügbar ist. Der Inhalt der verwendeten Nachricht steht dann im Prozess zur weiteren Verarbeitung zur Verfügung.
Konfigurieren von Warteschlangenauslösern
Der Warteschlangentrigger bietet die folgenden Konfigurationseigenschaften zum Herstellen einer Verbindung mit einer angegebenen Warteschlange.
Warteschlange
- Der Name der AMQP-Warteschlange, die abgehört werden sollBus Uri
- Die URI für die AMQP-Warteschlange, z. B. amqps://owner:@.servicebus.windows.net:5671Antwort
- Sollen wir das nachfolgende Prozessergebnis an die von derAntworten an
OptionAntwortfehler
- Sollen wir das fehlgeschlagene Prozessergebnis an die von derBeantworten
OptionBeantworten
- Die Warteschlange, an die wir die Antworten senden sollenDie Warteschlange ist langlebig
– Wenn diese Option festgelegt ist, wird erwartet, dass die Warteschlange dauerhaft ist, d. h., dass sie mögliche Neustarts des Brokers übersteht.
Diese Einstellung muss mit der tatsächlichen Konfiguration der Warteschlange übereinstimmen, sofern diese zuvor erstellt wurde.
Trigger-Referenzliste
#trigger.daten.body
– Der Textkörper der Nachricht.#trigger.data.applicationProperties
- Die benutzerdefinierten Header der Nachricht#trigger.daten.eigenschaften
- Die AMQP-Nachrichteneigenschaften, Einzelheiten finden Sie unter.http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-properties
Empfangen von Nachrichten
Der Warteschlangentrigger empfängt und akzeptiert (vervollständigt) Nachrichten aus der Warteschlange, sobald sie eintreffen, wobei pro Warteschlangentrigger und Agent maximal 10 gleichzeitig verarbeitete Nachrichten möglich sind. Wenn der Trigger entsprechend konfiguriert ist, sendet er nach Abschluss des Prozesses eine Antwortnachricht an die Warteschlange „Antworten an“.
Hinweis: Der AMQP-Text kann verschiedene Datentypen enthalten. Meistens wird dieser so an den Prozess übermittelt, wie er ist. Die Ausnahme ist, wenn der Text ein Byte-Array ist und die Eigenschaft „ContentType“ das Feld „Charset“ festgelegt hat, z. B. „text/plain; charset=UTF-8“. In diesem Fall werden die Binärdaten in eine Zeichenfolge mit der dem Zeichensatz entsprechenden Kodierung konvertiert.
Antworten auf Nachrichten
Wenn der Vorgang fehlgeschlagen ist undAntwortfehler
ausgewählt wurde, wird die Ausnahme, die den Fehler verursacht hat, in die Antwortnachricht geschrieben. Die Nachricht hat eine neue Guid als MessageId und dieselbe CorrelationId wie die ursprüngliche Triggernachricht.
Wenn eine erfolgreiche Antwort an eine Warteschlange gesendet wird, wird das Ergebnis als Nachrichtentext geschrieben. Komplexe Strukturen (Objekte) werden standardmäßig als JSON serialisiert. In diesem Fall wird die CorrelationId der auslösenden Nachricht in die Antwortnachricht kopiert.
Es ist möglich, die Nachrichtenstruktur direkt im Ergebnis zu definieren. Dies geschieht, wenn das Ergebnis ein Objekt enthält, das mindestens eine der Eigenschaften hatKörper
oderAnwendungseigenschaften
In diesem Fall wird das Ergebnisobjekt direkt als Antwortnachricht mit folgender Struktur abgebildet:
Body: Objekt - der Text der Antwortnachricht
ApplicationProperties: Dictionary<string, object> – die benutzerdefinierten Header für die Nachricht
Eigenschaften: die AMQP-Nachrichteneigenschaften
MessageId; Zeichenfolge
AbsoluteExpiryTime: Datum/Uhrzeit
ContentEncoding: Zeichenfolge
ContentType: Zeichenfolge
CorrelationId: Zeichenfolge
Erstellungszeit: Datum/Uhrzeit
GroupId: Zeichenfolge
Gruppensequenz: uint
ReplyToGroupId: Zeichenfolge
ReplyTo: Zeichenfolge
Betreff: string
Benutzer-ID: byte[]
An: Zeichenfolge
Verwandte ArtikelService Bus-TriggerRabbitMQ-AuslöserEinführung in Queue TriggerEinführung in Service Bus TriggerEinführung in RabbitMQ Trigger