Futures and Async Concepts
Timeout Choice
Decide what to do when a result takes too long.
Timeout Choice
TimeoutChoice.scala
object Main {
def main(args: Array[String]): Unit = {
val elapsed =
val limit = 100
val inTime = elapsed <= limit
val status = if (inTime) "in-time" else "timeout"
val action = if (inTime) "use-result" else "use-fallback"
println("elapsed=" + elapsed)
println("limit=" + limit)
println("status=" + status)
println("action=" + action)
}
}
object Main {
def main(args: Array[String]): Unit = {
val elapsed =
val limit = 100
val inTime = elapsed <= limit
val status = if (inTime) "in-time" else "timeout"
val action = if (inTime) "use-result" else "use-fallback"
println("elapsed=" + elapsed)
println("limit=" + limit)
println("status=" + status)
println("action=" + action)
}
}
object Main {
def main(args: Array[String]): Unit = {
val elapsed =
val limit = 100
val inTime = elapsed <= limit
val status = if (inTime) "in-time" else "timeout"
val action = if (inTime) "use-result" else "use-fallback"
println("elapsed=" + elapsed)
println("limit=" + limit)
println("status=" + status)
println("action=" + action)
}
}
timeout-choice
A timeout is a policy decision. The example compares fixed scalar values and chooses either the normal result path or a fallback path.