假设邮箱中有邮件。是否可以暂停Actor处理消息并在以后恢复它而不保留线程。
谢谢, 拉维
答案 0 :(得分:0)
Akka提供了一种使用context.become()
和context.unbecome()
更改演员行为的方法。一旦您改变了行为,它还会为您提供stash()
和unstash()
邮件的方式。
这个想法是become()
一个基本上什么都不做的新行为(比如暂停)但是隐藏了消息。一旦满足特定条件,演员unbecome()
和unstashAll()
消息将它们再次放回邮箱并再次开始处理它们。
你可以在Akka文档中找到一个很好的例子(寻找Stash):http://doc.akka.io/docs/akka/snapshot/scala/actors.html