暂停AKKA演员

时间:2015-06-10 21:35:08

标签: akka

假设邮箱中有邮件。是否可以暂停Actor处理消息并在以后恢复它而不保留线程。

谢谢, 拉维

1 个答案:

答案 0 :(得分:0)

Akka提供了一种使用context.become()context.unbecome()更改演员行为的方法。一旦您改变了行为,它还会为您提供stash()unstash()邮件的方式。

这个想法是become()一个基本上什么都不做的新行为(比如暂停)但是隐藏了消息。一旦满足特定条件,演员unbecome()unstashAll()消息将它们再次放回邮箱并再次开始处理它们。

你可以在Akka文档中找到一个很好的例子(寻找Stash):http://doc.akka.io/docs/akka/snapshot/scala/actors.html