CONNECTED Conference 2023 - Aufzeichnungen jetzt hier verfügbar +++                     

Suche

über alle News und Events

 

Alle News

 

Vom 5. bis 7. Juni findet in London wieder die...

Weiterlesen

Live Coding on stage in Hamburg - exklusiv für...

Weiterlesen

Um Azure Ressourcen von DevOps aus zu deployen,...

Weiterlesen

In diesem Artikel wird ein beispielhafter Aufbau...

Weiterlesen

Die QUIBIQ Gruppe wurde am 9. März 2023 von dem...

Weiterlesen

Der Schnelleinstieg in die Welt der Tests für den...

Weiterlesen

Wenn man eine, im Azure Portal, entwickelte Logic...

Weiterlesen

WinSCP für BizTalk wird für den SFTP-Adapter...

Weiterlesen

Mit diesem Artikel wird ein klares Verständnis von...

Weiterlesen

In einer Logic App werden häufig Variablen...

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