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
,而這樣做是絕對關鍵的。但總的來說,讓它崩潰比根本沒有迴應更好。