callWithDelay
Versionshinweise | 25.1 | ||
---|---|---|---|
Massendatenaktion |
Code
<RESULT> RESULT LogicScriptUtils.calWithDelay(String id, int threshold, Callable<RESULT> callable)
Beschreibung
Synchronisiert den verzögerten Start von dem übergebenen Lambda-Aufruf anhand der ID mit vorgegebenen maximalen Zwischenzeit.
D.h. der Aufruf wird nur dann verzögert, wenn zuvor ein gleichwertiger Aufruf innerhalb des Zeitfensters durchgeführt wurde.
Für die Verzögerung ist nur der Startzeitpunkt des Aufrufs ausschlaggebend, nicht aber wie lange der Aufruf insgesamt benötigt.
Parameter
id - Die eindeutige ID für gleichwertige Aufrufe.
threshold - Die maximale Verzögerung zum vorherigen Aufruf.
callable - Der Aufruf als Lambda-Anweisung mit entsprechender Rückgabe.
Rückgabe
Der Rückgabe-Wert aus dem Lambda-Aufruf.
Beispiele
// could start immediately
Response response1 = LogicScriptUtils.callWithDelay("SURVEY", 500, () -> { return RestUtils.get(request1); });
// waits up to 500ms
Response response2 = LogicScriptUtils.callWithDelay("SURVEY", 500, () -> { return RestUtils.get(request2); });