![]() |
RetryPolicy - Eine Klasse für robuste Programmierung
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 ( ![]() 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: ![]() 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:
Man kann auch auf die Exceptions reagieren, durch einen Callback.
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 |
AW: RetryPolicy - Eine Klasse für robuste Programmierung
Das hört sich sehr hilfreich an, teste ich gleich mal aus.
:-D Danke! |
AW: RetryPolicy - Eine Klasse für robuste Programmierung
Ja, das ist cool. Allerdings gibt es das + noch mehr zB auch hier:
![]() |
AW: RetryPolicy - Eine Klasse für robuste Programmierung
Oooh, das klingt wirklich interessant.
Grade bei Delphis länglichen anonymen Methoden bin ich weniger ein Freund von Fluent Interfaces, aber wenn ich meinen eigenen Kram gegen etwas austauschen kann gegen etwas das evtl. noch andere verwenden schlafe ich auch gleich viel besser. Vielen Dank. 👍 |
AW: RetryPolicy - Eine Klasse für robuste Programmierung
Zitat:
Da sind auch paar andere interessante Klassen bei. Allerdings muss ich auch ein Minuspunkt geben, keine Unit-Tests! |
AW: RetryPolicy - Eine Klasse für robuste Programmierung
Auf dem CodingBott Youtube Kanal gibt es jetzt ein Video zu dieser Klasse.
Ich quatsche einfach 20 Minuten zum Entwicklungsprozess. D.h. es ist dieses mal also nicht spannend. Die Techniken sind bereits in anderen Video behandelt. Punkte sind: * die Klasse ist test-getrieben entstanden, da es kein Programm gab, welches die Klasse nutzte. Also der Test zum Starten der verschiedenen Funktionen. * Zeiger auf Funktionen * Exception Handling * FluentInterfaces * Wo ich mich verrannt habe im Konzept, weil mein Delphi zu alt ist. Dynamische Arrays vs. Listen Hier ist der Link zum Video: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz