我在未來呼叫中執行某些操作。如果未來通話失敗,我會在成功完成時將結果返回給發件人,或者讓演員失敗。父母將處理具有主管策略的RoundRobinPool。如果未來呼叫失敗,則失敗演員
這是代碼片段。
private def getData(sender: ActorRef): Unit = {
dao.getData().mapTo[List[Data]].map(result => sender ! result)
.onFailure {
case e: NullPointerExcetpion => {
println("+++++++ Throwing exception")
// throwning the exception from here doesn't cause the supervisor to restart this actor
throw t
}
}
// throwing the exception from here makes the supervisor strategy to take action
throw new NullPointerExcetpion
}
如果將來返回異常,我們該如何讓參與者失敗?
乾杯,
UTSAV
你是什麼意思是「失敗的演員」嗎? –
將其傳回給用戶並殺死actor。導致主管重新啓動參與者的行爲。由於SupervisorStrategy.Restart在監視器中用於空指針異常。 – Utsav
更重要的是,爲什麼當我明確地從Future函數外部拋出錯誤時,它會工作? – Utsav