Kann ich ein Play Framework-Versprechen stoppen?
-
21-12-2019 - |
Frage
Gibt es eine empfehlenswerte Möglichkeit, ein Play Framework-Versprechen zu stoppen?Zum Beispiel,
import play.api.libs.concurrent.Promise
val timeoutFuture = Promise.timeout({
Logger.info("timeout expired.")
}, myTimeoutValue)
Was wäre eine gute Möglichkeit, diese Zukunft vorher zu kündigen? myTimeoutValue
läuft ab?
Lösung 2
Am Ende befürchte ich, dass die Antwort nein war - es gab keine Möglichkeit, ein solches Versprechen zu stornieren, bevor das Timeout abläuft.
Andere Tipps
Wenn die Timeout-Zeit zu lang ist, reduzieren Sie sie einfach myTimeoutValue
.Wenn Sie die Ausführung unterbrechen möchten, ist dies eine Möglichkeit hier gezeigt durch die Vervollständigung einer Zukunft.
Dies ist jedoch eine fragwürdige Vorgehensweise, da Sie das Ergebnis Ihres Versprechens/Ihrer Zukunft einfach ignorieren können, wenn es zu lange dauert. Da Sie jedoch einen Zeitraum festlegen müssen, in dem es zu lang ist, ist es genauso gut, dies so zu formulieren der Timeout-Wert.