阿卡的Stash的目的是什么?

时间:2016-10-25 17:06:24

标签: scala akka

如果我在spec here中使用Stash。我为Stash设置了一个配置:

 akka{
        actor {
          queued-dispatcher {
              mailbox-type ="akka.dispatch.UnboundedDequeueBasedMailBox"
          }
        }
      } 
  1. 我认为发送到藏匿处的消息存储在UnboundedDequeueBasedMailBox中。我的洞察力是错误的,如果是UnboundedDequeueBasedMailBox的真正目的是什么?
  2. 我可以收到stash的消息吗?
  3. 方法stash()是如何工作的?

1 个答案:

答案 0 :(得分:3)

  1. 如果您使用Stash特质,则只能使用UnboundedDequeueBasedMailBox。如果您想使用其他邮箱类型,还有另一个名为UnrestrictedStash

  2. 的特征
  3. 您可以在Scala Api中调用unstashAll(),或者如果您使用Java Api unstash()unstashAll()。在这两种情况下,隐藏的消息都将被添加到演员的邮箱中。

  4. 如果您查看Stash特征来源,它只使用Vector来存储信封(即消息)。调用unstash() / unstashAll()时,它会以相反的顺序排列消息。