加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 我的演员重新启动后所产生的未来会发生什么

发布时间:2020-12-16 08:43:31 所属栏目:安全 来源:网络整理
导读:我有一个Akka Actor(ARCWorker),它具有一对一的主管策略,可以在任何异常时重启. def idle: Receive = { case UnitOfWork(data,service) = { data.HelperRef = Some(ftpHelper) val futurework = service(data) futurework pipeTo self context.become(busy)
我有一个Akka Actor(ARCWorker),它具有一对一的主管策略,可以在任何异常时重启.

def idle: Receive = {
    case UnitOfWork(data,service) =>
      {
        data.HelperRef = Some(ftpHelper)
        val futurework = service(data)
        futurework pipeTo self
        context.become(busy)
      }
}

这未来的工作需要一些时间才能完成.我的ARCWorker监视主服务器,如果主服务器死机,它会重新启动并进入未初始化状态.那时我不希望我的ARCWorker收到未来工作的结果.

所以我的问题:
1)如果我抛出异常并让主管负责重启ARCWorker,我未来的工作会怎样?
2)如果我执行ARCWorker的context.stop会发生什么? (我认为主管不会处理,但想确认)
3)如果我没有其他选择,有没有办法取消我的未来工作?

谢谢
????玛纳斯

解决方法

由actor创建的Future将不会受到接收函数创建它的actor的后续重启或死亡的影响.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读