Ich schreibe ein Server-Endprogramm mit Twitter Finagle. Ich benutze nicht den vollen Twitter-Server-Stack, sondern nur den Teil, der asynchrone Verarbeitung ermöglicht (also Future, Function, etc). Ich möchte die Zukunft Objekte Timeouts haben, so dass ich dies schrieb:Twitter Future Timeout gilt nicht für die gesamte flatMap-Kette
Future<String> future = Future.value(some_input).flatMap(time_consuming_function1);
future.get(Duration.apply(5, TimeUnit.SECONDS));
time_consuming_function1
läuft länger als 5 Sekunden. Aber future
nicht nach 5 Sekunden Timeout und es wartet, bis time_consuming_function1
fertig ist.
Ich denke, das ist, weil future.get(timeout)
nur daran interessiert ist, wie lange die future
dauerte, um zu erstellen, nicht die gesamte Operationskette. Gibt es eine Möglichkeit, die gesamte Operationskette zu unterbrechen?
Danke sschaef zum Bearbeiten – stackoverflower
Ist meine Antwort unzureichend? –