Prozessentwicklung
Geschrieben vonOssi Galkin Vor über einer Woche aktualisiertTable of contentsWarteschlangen-Trigger
Frends kann in ereignisgesteuerten Architekturen als AMQP-Abonnent mit einem Warteschlangentrigger verwendet werden. Die Warteschlangentrigger ermöglichen das Auslösen von Prozessen in Nachrichten, die aus einer AMQP 1.0-Warteschlange empfangen werden. Der Warteschlangentrigger ruft die Nachricht aus der Warteschlange ab, wenn eine neue Nachricht in der Warteschlange verfügbar ist. Der Inhalt der abgerufenen Nachricht steht dann im Prozess zur weiteren Verarbeitung zur Verfügung.
Warteschlangen-Triggerparameter
Der Warteschlangentrigger bietet die folgenden Konfigurationseigenschaften zum Herstellen einer Verbindung mit einer angegebenen Warteschlange.
Warteschlange
- Der Name der AMQP-Warteschlange, die abgehört wirdBus Uri
- Die URI für den AMQP-Bus, z. B. amqps://owner:@.servicebus.windows.net:5671Antwort
- Sollen wir ein nachfolgendes Prozessergebnis an die von derAntworten an
OptionAntwortfehler
- Sollen wir ein fehlgeschlagenes 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.
Bitte beachten Sie, dass diese Einstellung nur von Frends Agents ab Version 5.2.4 erkannt wird.
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 dem Prozess bereitgestellt, 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 Meldung an eine Warteschlange zurückgegeben wird, wird das Ergebnis als Nachrichtentext geschrieben. Komplexe Strukturen (Objekte) werden standardmäßig als JSON serialisiert. In diesem Fall wird die Korrelations-ID 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 – die benutzerdefinierten Header für die Nachricht Properties – die AMQP-Nachrichteneigenschaften MessageId; Zeichenfolge AbsoluteExpiryTime: DateTime ContentEncoding: Zeichenfolge ContentType: Zeichenfolge CorrelationId: Zeichenfolge CreationTime: DateTime GroupId: Zeichenfolge GroupSequence: uint ReplyToGroupId: Zeichenfolge ReplyTo: Zeichenfolge Subject: Zeichenfolge UserId: byte[] To: Zeichenfolge
Verweisen auf Triggerparameterwerte
#trigger.daten.body
– Der Textkörper der Nachricht.#trigger.data.applicationProperties
- Die benutzerdefinierten Header der Nachricht#trigger.daten.eigenschaften
- Die AMQP Nachrichteneigenschaften, sieheDasfür weitere Details
Der nächste Artikel istEinführung in Service Bus Trigger
Verwandte ArtikelService Bus-TriggerWarteschlangen-TriggerRabbitMQ-AuslöserEinführung in Service Bus TriggerEinführung in RabbitMQ Trigger