AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte RetryPolicy - Eine Klasse für robuste Programmierung
Thema durchsuchen
Ansicht
Themen-Optionen

RetryPolicy - Eine Klasse für robuste Programmierung

Ein Thema von generic · begonnen am 26. Jan 2020 · letzter Beitrag vom 6. Feb 2020
 
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#1

RetryPolicy - Eine Klasse für robuste Programmierung

  Alt 26. Jan 2020, 19:48
In Rahmen der CodingBott Youtube Videos, ist eine kleine Klasse entstanden, welche ich euch hier vorstellen möchte.

Etwas inspiriert wurde ich durch Polly ein C# Framework (https://github.com/App-vNext/Polly).

Die Klasse hilft euch Dinge erneut zu tun, wenn eine Exception aufgetreten ist.
Beispiele findet ihr in der README bzw. es gibt natürlich Unit-Tests, wo ihr auch reinschauen könnt, wie die Klasse funktioniert.

Grundsätzlich geht es um eine robuste Programmierung. D.h. Ihr ruft einen Webservice an, doch dieser reagiert nicht und es gibt eine Exception.
Mit der Klassen, könnt ihr einfach das 2,3 mal probieren den Service aufzurufen mit z.B. 2 Sekunden zwischen den aufrufen.

Der Quelltext ist hier verfügbar:
https://github.com/codingbott/Bott.RetryPolicy

Bitte gebt mir mal Feedback, ob ihr das brauchen könnt und ob noch weitere Features notwendig sind. Falls Ihr weitere Ideen habt, sind diese natürlich auch willkommen.

Beispiel:

4 mal den Webservice versuchen. Der zweite Versuch 1 Sekunde später. Der dritte 3 Sekunden nach dem zweiten und dann 10 Sekunden für den letzten Versuch.
Klappt der auch nicht wird false zurück gegeben.
Delphi-Quellcode:
if
    TRetryPolicyFactory.GetInstance()
      .WaitAndRetry(1000) // 1 Sekunde
      .WaitAndRetry(3000) // 3 Sekunden
      .WaitAndRetry(10000) // 10 Sekunden
      .Execute(
          procedure()
          begin
            // webservice aufruf hier
          end
      )
then
  // erfolg
else
  // fehlgeschlagen
Man kann auch auf die Exceptions reagieren, durch einen Callback.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz