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

Suche

über alle News und Events

 

Alle News

 

Viele unserer Kunden überlegen derzeit, was sie in...

Weiterlesen

Lösungsansatz – was benötigt man dafür:

  • Einen...
Weiterlesen

Es gibt im Preview die Möglichkeit Azure Blob...

Weiterlesen

In diesem Blogeintrag werden wir drei sichere und...

Weiterlesen

Im vergangenen Jahr war bei uns in Hamburg viel in...

Weiterlesen

Heutzutage werden Token für die Authentifizierung...

Weiterlesen

Versionsverwaltungssoftware gehört zu den...

Weiterlesen

Das Azure API Management self-hosted Gateway von...

Weiterlesen

Alles Hybrid! QUIBIQ Talkmasters bietet gemeinsam...

Weiterlesen

Während man in Visual Studio für BizTalk basierend...

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