我在 mysql 中有 1000 行数据,我需要根据某些逻辑进行更新,由于某种原因,这些逻辑无法在 mysql 中使用批量更新完成,必须在 java 中完成。我需要将作业拆分为 20 个可管理的单元,每个单元有 50 个任务,所以对于每个小组,我将有 50 名演员来完成这项工作。
我制作了这张图来说明我的意思
java中的什么演员模型可以让我以这种方式对演员进行分组?
我在 mysql 中有 1000 行数据,我需要根据某些逻辑进行更新,由于某种原因,这些逻辑无法在 mysql 中使用批量更新完成,必须在 java 中完成。我需要将作业拆分为 20 个可管理的单元,每个单元有 50 个任务,所以对于每个小组,我将有 50 名演员来完成这项工作。
我制作了这张图来说明我的意思
java中的什么演员模型可以让我以这种方式对演员进行分组?
正如@Bob 所指出的,您可以使用Akka轻松做到这一点。您的 Actor 监督层次结构将是这样的:1 个SuperMaster
Actor,启动 20 个Master
Actor,每个 Actor 负责一大块工作。他们要求SM
工作,并创建 50 名Slave
演员,将工作委托给他们。您可以设置一个监督策略来确定 Slave 是否死亡,您是否需要重新开始该工作,或者您是否应该放弃整个“组”并告诉 SuperMaster 这组工作失败等。如果所有工作都Slave
完成他的作品,它告诉Master
. 如果所有工作都完成了(M
得到 50 条“工作完成”消息),它可以告诉它SuperMaster
所有工作都已经完成,并且我们已经完成了处理工作。
您可以很好地使用 Akka 的监督层次结构对故障和恢复进行建模(如“继续尝试直到成功”或“如果组失败则中止所有执行”等)。至于传播工作——是的,这也很容易,部分已经在我如何布置监督互动中进行了描述。
希望这会有所帮助,快乐哈克!