关于使用 scala 为 akka actor 模型划分子问题

About dividing into subproblems for akka actor model using scala

我正在做一个项目,涉及查找给定前缀的后缀字符串——例如,"aaa",以便其散列值 (SHA256) 具有特定模式——例如,以“ 123".

我找到所需哈希键的方法是按顺序生成后缀字符串:首先尝试所有具有一个字符的字符串——基本上它通过ASCII 可打印代码图表,总共尝试95 次。如果找不到所需的散列键,则尝试所有包含两个字符的字符串(95*95 尾迹)...等等。

我还需要使用akka actor模型让多个actor同时参与解决这个问题。 (演员的数量是一个输入)

知道如何使用此模式有效地将整个问题分配给多个参与者吗?或者谁有更好的办法解决这个问题?

您可以将您的工作人员分组在 BalancingPool which will automatically distribute work to idle actors, with the manager and worker actors using work pulling 下,以防止邮箱变得太大。

  1. 管理员接受两种消息类型:work-requestwork-completeWork-request 由工人在完成 X 任务时调用(其中 X 是,比方说,10),通知经理向 [= 添加 X 更多任务16=]。 Work-complete 在 worker 找到合适的字符串前缀时调用,此时管理器向 BalancingPool 发送 stop 命令,指示它立即终止并终止其 worker。除此之外,管理器负责最初用足够的前缀填充 BalancingPool 供工作人员测试(例如,20 * workerCount),并在每次收到 work-request 消息时重新填充池。
  2. 工作人员接受一种消息类型:test-prefix,其中包含供工作人员测试的字符串前缀。它还需要维护已接收和处理的消息计数,当此计数达到 X 时,它会被清零,工作人员会向管理器发送 work-request 消息。