在 AKKA 演员中实现长期运行任务的最佳方式是什么?
长时间运行的任务示例:1)文件 IO 2)多媒体(视频/音频)IO
如果我让演员从麦克风录制或向扬声器播放声音/歌曲,它必须阻止线程。但是 - 据我了解 AKKA Actors - 这个被阻止的 Actor 不会对来自外部的任何消息做出反应。因此,我没有可能中断(或暂停)我长时间运行的任务。
有没有标准的方法来实现我的目标?或者对于这种特定类型的任务,Actor 是不是错误的模型?
使用新的 Akka IO(在 2.2.0 中,现在在 RC1 中),它为 Actors 提供非阻塞消息驱动的 TCP 和 UDP。
http://doc.akka.io/docs/akka/2.2.0-RC1/scala/index-network.html
您通常会做的是将事物放入块中并一次处理一个块,而不是阻塞下一个块。