Akka 演员 - 分担责任

Akka actors - sharing responsibility

如果我理解正确,处理需要多个参与者的任务的最佳方式是向参与者 1 发送消息,让他完成他的工作,让参与者 1 向参与者 2 发送消息,让他做他的工作工作并让 actor 2 向用户或第三个 actor 等发送消息。

例如,当某些任务需要从磁盘获取数据集定义、处理它、转换结果并将结果发送回用户时。 Actor 1 将从磁盘获取数据集定义,将其转换为 JSON,将结果发送给处理 JSON 的 actor 2,然后将结果发送回用户。

但是处理数据集定义的完整任务分给了两个参与者,这真的是做这类事情的最佳方式吗?

要完成任务,actor 1 和 2 都应该知道该任务,而 actor 1 除了从磁盘获取定义并将其发送给第二个 actor 之外什么都不做。

人们通常如何做到这一点?

提前致谢, 理查德

阅读此 link。尽管您的方案可以以这种方式实现,但您描述了很多细节需要考虑。如果你想要并发,考虑使用 futures,如果你想要顺序处理,使用 monadic 结构。