Suche

über alle News und Events

 

Alle News

 

Ein Arbeitsplatz ist mehr als nur ein Ort, an dem...

Weiterlesen

Am 01. Oktober ab 12:30 Uhr treffen sich...

Weiterlesen

Die Nutzung des Postman Mock Servers ist einfach...

Weiterlesen

Ein Community-Held feiert seinen Erfolg: „WOW! Ich...

Weiterlesen

Einfach großartig! Die Stimmung war hervorragend....

Weiterlesen

Rules, Rules, RULES!! Dan Toomey, The evolution of...

Weiterlesen

Keynote von Slava Koltovich, Feature: E2E - AIS...

Weiterlesen

Inspirierende Messeerfahrungen auf der 'Zukunft...

Weiterlesen

In diesem Artikel wird beschrieben, wie ihr eure...

Weiterlesen

Messaging mit dem Service Bus ermöglicht die...

Weiterlesen

How-to: Logic App: Verarbeiten von Azure Service Bus Nachrichten – wenn’s mal etwas länger dauert

Ein gängiges Szenario ist es, seine Azure Service Bus Nachrichten, egal ob Queue oder Topic, mittels einer Logic App abzuarbeiten. Es gibt die Möglichkeit einen Trigger zu verwenden, der die Nachricht sofort abschließt und somit aus der Queue oder dem Topic entfernt, noch bevor die Verarbeitung bzw. die Logic App durchlaufen ist (auto-complete).

Wenn wir die Nachricht erst abschließen wollen, nachdem die Verarbeitung durchlaufen ist, gibt es zusätzlich noch die Möglichkeit mittels Peek-Lock Trigger, der die Nachricht empfängt und wir sie mittels zusätzlicher Action abschließen müssen.

Hier gibt es aber eine Limitierung, die dieses Vorhaben erschweren kann: eine Service Bus Nachricht kann maximal 5 Minuten lang für weitere Empfänger gesperrt sein. Heißt, wenn die Logic App länger als 5 Minuten läuft (so wie oben), wird die Nachricht wieder freigegeben und wird vom Trigger oder anderen Empfängern erneut verarbeitet.

Wir müssen die Sperrdauer der Nachricht also irgendwie erneuern können, wenn unsere Logic App nicht garantiert unter den 5 Minuten bleibt. Das soll möglichst effizient passieren und so lange, wie die Logic App für die Verarbeitung eben benötigt. Erfreulicherweise stellt uns der Logic App Designer hierzu eine Möglichkeit bereit.

Zu Beginn der Logic App wir eine Variable (isCompleted) initialisieren, die wir erst nach der Verarbeitung auf true setzen. Danach teilt sich unsere Logic App in zwei Zweige auf.

Der linke Zweig führt die Verarbeitung durch und schließt die Nachricht am Ende ab oder verwirft sie im Fehlerfall.

Der rechte Zweig, der parallel zum linken ausgeführt wird, erhält die Sperrzeit aufrecht, solange der verarbeitende Zweig noch nicht fertig ist.

Der While-Block stellt sicher, dass die Nachrichtensperre bis zu 1 Stunde gehalten wird. Um länger oder kürzer zu halten, kann der Timeout entsprechend angepasst werden.

Der Delay sollte kürzer sein als die Dauer der Nachrichtensperre. Da in diesem Beispiel die Sperre (Lock-Duration) 30 Sekunden beträgt, reichen hier 25 Sekunden aus. Die Dauer kann und sollte an die tatsächliche Sperrzeit angepasst werden.

Dadurch geben wir der Logic App die Zeit, die sie zur Verarbeitung benötigt und das ohne uns darüber Sorgen machen zu müssen, dass sie es in den vom Service Bus vorgeschriebenen 5 Minuten bewerkstelligen kann.

Dieser quiTeq-Tipp kam von Martin, QUIBIQ Stuttgart.

 

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz