scala - 重新开始的我的 Actor 所产生的 future 会发生什么

标签 scala akka future

我有一个 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/

相关文章:

scala - 如何分析 Akka 应用程序?

scala - Akka中Actorref.tell和inbox.send的区别

scala - 在 scalaguice 中急切地初始化单例 Actor

c++ - (如何)当 std::future 准备好时,我可以在 boost::asio::io_service 上获得回调吗?

Scala 编译器优化以实现不变性

java - 在 Scala 中通过 SimpleDateFormat 转换后如何保持 DateTime 为 DateTime 格式?

java - 如何在 Play 中组织 java 和 scala 代码?

scala - “Future.successful(None)”和 “Future(None)”有什么区别

list - 按顺序调用任意数量的 WS.url().get()

scala - 可以在 Scala 中创建大小类型吗?