Try again and again

Failsafe: Eine leichtgewichtige Bibliothek für die Fehlerbehandlung mit Java 6+

Dominik Mohilo

©Shutterstock/Brian A Jackson

Fehler passieren jedem, denn niemand ist perfekt. Vor allem nach einer Session übermüdeten Nachtschicht-Codings kann es sein, dass sich der ein oder andere Fehler in den Sourcecode geschlichen hat. Für die richtige Fehlerbehandlung gibt es viele Tools, allerdings wenige, die so umfangreiche Features beinhalten, wie die Bibliothek Failsafe.

Recurrent heißt nun Failsafe. Hinter dem Namen verbirgt sich eine leichtgewichtige, Zero-Dependency-Bibliothek, die sich leicht in existierende Bibliotheken integrieren lässt. Neben Java 8 und Netty wird unter anderem auch die Integration mit RxJava und Vert.x als problemlos angegeben. Dabei unterstützt Failsafe bereits Java ab Version 6.

Features

Eines der wichtigsten Features ist die Unterstützung von Retries. Wenn gewisse Teile eines Programms fehlerhaft sind, kann es helfen, wenn man sie mit einem Retry erneut ausführt. Damit dies funktionieren kann, muss eine Retry Policy geschrieben werden, die angibt, wann Retries ausgeführt werden sollen. In der Retry Policy können Nutzer verschiedene Situationen und Ergebnisse einer Funktion definieren, die einen Retry auslösen. Außerdem kann man in ihr eine gewisse Zeitspanne festlegen, die zwischen Retries vergehen muss. Natürlich kann auch festgelegt werden, unter welchen Umständen die Retries aufhören sollen. Retries können synchron oder asynchron ausgeführt werden.

Failsafe unterstützt auch sogenannte Circuit Breaker, die dazu genutzt werden, Fehler aufzuspüren und das Ausführen von Aktionen zu verhindern, die definitiv nicht funktionieren können. Ist beispielsweise ein Server nicht verfügbar, zu dem sich ein Programm verbinden will, würde das Programm ohne einen Circuit Breaker immer weiter versuchen zu verbinden und Fehler ausgeben. In Failsafe können Circuit Breakernicht nur individuell konfiguriert und als Standalone-Feature verwendet werden, sondern sogar mit Retries verbunden werden (die empfohlene Methode).

Neben den oben genannten Features können Nutzer auch auf Event Listeners, die CompletableFuture-Integration und Funktionen wie Execution Tracking zurückgreifen. Failsafe kann zum Beispiel per Maven Shade Plug-in in die Package-Struktur des eigenen Projektes integriert werden und verfügt über ein präzises API.

Failsafe wurde unter der Apache Lizenz 2.0 veröffentlicht und wurde mit der Motivation entwickelt, keine externen Abhängigkeiten, aber dennoch eine gute Java-8-Integration zu besitzen. Für die Zukunft geben die Entwickler an, weitere Strategien für die Fehlerbehandlung zu integrieren. Eine vollständige Liste mit Features und Funktionen von Failsafe gibt es in der sehr ausführlichen Readme auf GitHub.

Aufmacherbild: Shocked and surprised boy on the internet with laptop computer  von Shutterstock / Urheberrecht: Brian A Jackson

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: