我有一个 Akka Actor(ARCWorker),它有一个一对一的主管策略,可以在任何异常时重新启动。
def idle: Receive = {
case UnitOfWork(data, service) =>
{
data.HelperRef = Some(ftpHelper)
val futurework = service(data)
futurework pipeTo self
context.become(busy)
}
}
这项 future 的工作需要一些时间才能完成。我的 ARCWorker 监视主机,如果主机死亡,它会自行重新启动并进入未初始化状态。那时我不希望我的 ARCWorker 收到 future 工作的结果。
所以我的问题:
1) 如果我抛出异常并让主管负责重启 ARCWorker,我的 future 工作会发生什么?
2) 如果我执行 ARCWorker 的 context.stop 会发生什么? (我认为主管不会处理但想确认)
3) 如果我没有其他选择,有没有办法取消我的 future 工作?
谢谢
玛纳斯
最佳答案
Future
由actor 创建的actor 不受其接收函数创建它的actor 随后的重启或死亡的影响。
关于scala - 重新开始的我的 Actor 所产生的 future 会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21313167/