如何临时阻止Akka演员从邮箱中读取邮件

时间:2017-02-28 10:17:28

标签: akka

我有一个actor处理消息并通过异步API(ReactiveMongo)存储其结果。计算完成后,IE会要求ReactiveMongo存储计算结果,并且该调用是非阻塞的。

如何停止演员处理下一条消息,直到最后一次ReactiveMongo请求功能完成?邮箱也应该能够接收传入的消息。

1 个答案:

答案 0 :(得分:2)

阻止解决方案

简单和错误的答案:您可以通过阻止actor来执行此操作,只需调用Await(或您使用的语言中的任何类似方法)。

这是错误的,因为不要阻止演员

未阻止解决方案

Master \ Worker模式有助于解决此问题:http://letitcrash.com/post/29044669086/balancing-workload-across-nodes-with-akka-2

所以工作者将发送" 工作完成" ReactiveMongo请求功能完成后的消息。然后演员将发送新的" 做这项工作"给工人的信息。