Klasse TimeoutManager
-
Feldübersicht
FelderModifizierer und TypFeldBeschreibungstatic final long
Standard-Timeout im Archivsystem -
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungstatic <T> T
callWithTimeout
(TimeoutFunction<T> func) Führt den angegebenen Lambda-Ausdruck mit einem Timeout aus.static <T> T
callWithTimeout
(TimeoutFunction<T> func, long timeoutMillis) Führt den angegebenen Lambda-Ausdruck mit einem Timeout aus.
-
Felddetails
-
STANDARD_TIMEOUT
public static final long STANDARD_TIMEOUTStandard-Timeout im Archivsystem- Siehe auch:
-
-
Konstruktordetails
-
TimeoutManager
public TimeoutManager()
-
-
Methodendetails
-
callWithTimeout
public static <T> T callWithTimeout(TimeoutFunction<T> func) throws TimeoutException, InterruptedException Führt den angegebenen Lambda-Ausdruck mit einem Timeout aus. Der Timeout istSTANDARD_TIMEOUT
.Wenn der Timeout abläuft und die Funktion sich nicht nicht beendet hat, wird der Thread, der die Funktion ausführt (dies ist der gleiche Thread, auf dem diese Funktion aufgerufen wird), mit
Thread.interrupt()
unterbrochen. Das heißt, mit demTimeoutManager
können nur Funktionen mit einem Timeout versehen werden, die sauber auf Interrupts reagieren und nicht z. B. in Endlosschleifen festhängen.- Typparameter:
T
- Ergebnis-Typ- Parameter:
func
- Funktion, die ausgeführt wird. Der Funktion wird als Parameter einTimeoutCallback
übergeben, über den mitTimeoutCallback.tick()
der Timeout verlängert werden kann.- Gibt zurück:
- Ergebnis der übergebenen Funktion
- Löst aus:
TimeoutException
- Wenn der Timeout abgelaufen ist.InterruptedException
- Wenn dieser Thread unterbrochen wurde, bevor der Timeout abgelaufen ist
-
callWithTimeout
public static <T> T callWithTimeout(TimeoutFunction<T> func, long timeoutMillis) throws TimeoutException, InterruptedException Führt den angegebenen Lambda-Ausdruck mit einem Timeout aus.Wenn der Timeout abläuft und die Funktion sich nicht nicht beendet hat, wird der Thread, der die Funktion ausführt (dies ist der gleiche Thread, auf dem diese Funktion aufgerufen wird), mit
Thread.interrupt()
unterbrochen. Das heißt, mit demTimeoutManager
können nur Funktionen mit einem Timeout versehen werden, die sauber auf Interrupts reagieren und nicht z. B. in Endlosschleifen festhängen.- Typparameter:
T
- Ergebnis-Typ- Parameter:
func
- Funktion, die ausgeführt wird. Der Funktion wird als Parameter einTimeoutCallback
übergeben, über den mitTimeoutCallback.tick()
der Timeout verlängert werden kann.timeoutMillis
- Timeout in Millisekunden- Gibt zurück:
- Ergebnis der übergebenen Funktion
- Löst aus:
TimeoutException
- Wenn der Timeout abgelaufen ist.InterruptedException
- Wenn dieser Thread unterbrochen wurde, bevor der Timeout abgelaufen ist
-