2

我在 mysql 中有 1000 行数据,我需要根据某些逻辑进行更新,由于某种原因,这些逻辑无法在 mysql 中使用批量更新完成,必须在 java 中完成。我需要将作业拆分为 20 个可管理的单元,每个单元有 50 个任务,所以对于每个小组,我将有 50 名演员来完成这项工作。

我制作了这张图来说明我的意思

在此处输入图像描述

java中的什么演员模型可以让我以这种方式对演员进行分组?

4

1 回答 1

1

正如@Bob 所指出的,您可以使用Akka轻松做到这一点。您的 Actor 监督层次结构将是这样的:1 个SuperMasterActor,启动 20 个MasterActor,每个 Actor 负责一大块工作。他们要求SM工作,并创建 50 名Slave演员,将工作委托给他们。您可以设置一个监督策略来确定 Slave 是否死亡,您是否需要重新开始该工作,或者您是否应该放弃整个“组”并告诉 SuperMaster 这组工作失败等。如果所有工作都Slave完成他的作品,它告诉Master. 如果所有工作都完成了(M得到 50 条“工作完成”消息),它可以告诉它SuperMaster所有工作都已经完成,并且我们已经完成了处理工作。

您可以很好地使用 Akka 的监督层次结构对故障和恢复进行建模(如“继续尝试直到成功”或“如果组失败则中止所有执行”等)。至于传播工作——是的,这也很容易,部分已经在我如何布置监督互动中进行了描述。

希望这会有所帮助,快乐哈克!

于 2014-08-05T23:45:03.153 回答