我正在使用 Akka 来控制对正在运行的系统进程的访问。
我有一个 CommandActor 来处理来自系统中任何 Actor 的传入命令请求(我们将其称为 RequestActor),并且对于每个新请求,CommandActor 都会生成一个单独的 CmdChildWorker Actor 来处理该特定请求。CommandActor 还限制了 CmdChildWorkers 的数量,并为每个请求分配一个唯一的 id,因此它比简单的路由器更复杂。
当命令完成时,并且在系统进程执行期间周期性地,CmdChildWorker Actor 将周期性更新发送回原始 RequestActor(例如到目前为止的进程输出)。
然而,为了保持简洁的设计,我希望能够将 CmdChildWorker 完全隐藏在原始 RequestActor 之外,它的唯一接口是单个 CommandActor。
显然,我可以通过 CommandActor 从 CmdChildWorker 发回任何回复消息,但我想知道是否可以直接从 CmdChildWorker 回复 RequestActor 而无需通过 CommandActor 路由消息,但仍然假装消息已从 CommandActor 发回。
即,我想将 CmdChildWorker 演员的发件人地址伪装成其父演员的地址。这可能吗?也许更重要的是,这是明智的,还是好的演员设计?
谢谢