Scala 路由器';的邮件未传递给发件人

Scala 路由器';的邮件未传递给发件人,scala,akka,Scala,Akka,我正在做一个项目,这个项目是作为集群运行的,它是使用akka scala API实现的。我的应用程序主要有4个参与者。它们是客户机、调度程序、工作分发程序和工作人员 我的application.conf如下所示 cluster { seed-nodes = [ "akka.tcp://application@<IP>:2553" ] roles = ["frontend", "dispatcher", "backend", "frontRouter", "disp

我正在做一个项目,这个项目是作为集群运行的,它是使用akka scala API实现的。我的应用程序主要有4个参与者。它们是客户机、调度程序、工作分发程序和工作人员

我的application.conf如下所示

cluster {
  seed-nodes = [
    "akka.tcp://application@<IP>:2553"
  ]
  roles = ["frontend", "dispatcher", "backend", "frontRouter", "dispRouter", "backRouter"]
auto-down = on
}

actor.deployment {

  lifecycle = on

  /client/router {
    router = round-robin-group
    nr-of-instances = 1
    routees.paths = [
      "/user/workDispatcher/router"
    ]
    cluster {
      allow-local-routees = on
      enabled = on
      use-role = "frontRouter"
    }
  }

  /workDispatcher/router {
    router = round-robin-group
    nr-of-instances = 1
    routees.paths = [
      "/user/workDistributor/router"
    ]
    cluster {
      allow-local-routees = on
      enabled = on
      use-role = "dispRouter"
    }
  }

  /workDistributor/router {
    router = round-robin-pool
    nr-of-instances = 1
    cluster {
      enabled = on
      allow-local-routees = on
      use-role = "backRouter"
    }
  }

}
集群{
种子节点=[
“阿卡。tcp://application@:2553"
]
角色=[“前端”、“调度程序”、“后端”、“前端路由器”、“反证器”、“后端路由器”]
自动关闭=打开
}
参与者部署{
生命周期=开启
/客户端/路由器{
路由器=循环组
实例数=1
routees.path=[
“/user/workDispatcher/router”
]
簇{
允许本地路由=打开
启用=打开
使用role=“frontRouter”
}
}
/workDispatcher/路由器{
路由器=循环组
实例数=1
routees.path=[
“/user/workDistributor/router”
]
簇{
允许本地路由=打开
启用=打开
使用role=“disputer”
}
}
/工作分发器/路由器{
路由器=循环池
实例数=1
簇{
启用=打开
允许本地路由=打开
使用role=“backRouter”
}
}
}
工作人员已通过路由器成功接收到来自客户端的工作,但问题是工作人员在完成作业后发送的消息未发送到客户端。我向客户端发送消息的代码是“sender()!JobComplete”。此消息未传递到客户端

此外,Dispatcher和WorkDistributor是中间参与者

如果您能告诉我如何解决这个问题,我将不胜感激


感谢并问候

这太愚蠢了,无法回答,但我有一个类似的循环池设置,我的工作线程用
发送者回复!命令
-无括号。如果这不起作用,请将代码发布到获取路由器和调度器的actorRef的位置。消息传递流已成功使用“循环池”。但它不与“循环小组”合作。我曾使用“system.actorOf(Props(classOf[WorkDispatcher]),“WorkDispatcher”)”创建调度器,并使用“val router=context.actorOf(Props(classOf[Adder]).withRouter(FromConfig()),name=“router”)”在WorkDistributor内部创建路由器。我有一个理论,但我需要更多地了解您的工作者参与者。您是否可以发布工作参与者的代码(他们的接收方法和您为响应工作请求而调用的过程)?