0
我们知道这段代码:用Duration.Inf阻止等待实例,最佳实践?
Await.result(someFuture, Duration.Inf)
如果我把时间的有限值,例如3秒,一旦过期,它抛出TimeoutException异常。
Duration.Inf如何,恐怕应用程序挂起。使用Duration.Inf的最佳做法是什么?
我们知道这段代码:用Duration.Inf阻止等待实例,最佳实践?
Await.result(someFuture, Duration.Inf)
如果我把时间的有限值,例如3秒,一旦过期,它抛出TimeoutException异常。
Duration.Inf如何,恐怕应用程序挂起。使用Duration.Inf的最佳做法是什么?
使用
Duration.Inf
的最佳做法是什么?
最好的做法是不会阻止使用Await
可言,并且使用某种回调来处理Future
异步,像map
,foreach
,onSuccess
,onFailure
,等等,这取决于你的使用情况。
如果您无论出于何种原因必须阻止使用Await
(实际上应该有很少的理由),您应该设置一个有限的Duration
以合理的限制。例如,如果您知道someFuture
通常需要5秒才能完成,则可以将超时设置为10秒。否则,如果Future
未完成,则线程调用Await
可以永久挂起。
不会有好结果可以出来使用Duration.Inf
,除非你想的应用程序挂起无限期地等待姗姗来迟Future
,而这样做是绝对关键的。但总的来说,让它崩溃比根本没有回应更好。