Akka 发送给参与者的消息在挂起时会发生什么情况?

Akka 发送给参与者的消息在挂起时会发生什么情况?,akka,actor,akka-supervision,Akka,Actor,Akka Supervision,在这种情况下,我的一个演员(A)由退避主管(B)监督 我感兴趣的事件顺序如下: 系统启动了,大家都很高兴 处理消息时失败 B现在认为A将被暂停,直到退避延迟消失 B收到一些他打算转发给A的消息(MM) 退避延迟elaspes和B重新启动A 大家又高兴起来了 在步骤4中,这些消息会发生什么变化? 他们迷路了吗?寄去死信?是否隐藏在B的某个位置,并在A重新启动/恢复时发送给A 现在,让我们添加另一层:A不是标准的演员,而是带有隐藏的演员 从A失败到重新启动/恢复之间的消息隐藏情况如何? 它被丢弃了吗

在这种情况下,我的一个演员(A)由退避主管(B)监督

我感兴趣的事件顺序如下:

  • 系统启动了,大家都很高兴
  • 处理消息时失败
  • B现在认为A将被暂停,直到退避延迟消失
  • B收到一些他打算转发给A的消息(MM)
  • 退避延迟elaspes和B重新启动A
  • 大家又高兴起来了
  • 在步骤4中,这些消息会发生什么变化?

    他们迷路了吗?寄去死信?是否隐藏在B的某个位置,并在A重新启动/恢复时发送给A

    现在,让我们添加另一层:A不是标准的演员,而是带有隐藏的演员

    从A失败到重新启动/恢复之间的消息隐藏情况如何?
    它被丢弃了吗?它没有擦洗吗?它放在储藏室里吗?

    经过几次实验,我想我可以回答上面两个问题:

    从参与者失败到重新启动,在退避主管的监督下发送给参与者的消息会发生什么情况?

    它们被发送到
    deadLetters()

    在参与者失败和重新启动之间,隐藏的消息会发生什么变化?

    在实际尝试重新启动之前,隐藏不会发生任何变化。重新启动过程开始时,隐藏的
    preRestart()
    步骤调用
    unstashAll()
    将所有邮件返回到邮箱。因此,邮件不会丢失,也不会被保存在储藏室中,而只是被清除并返回到邮箱