Scala Akka演员返回不同类型的输出
我有一个在scala中使用Akka Actors的项目,我遇到了一些关于执行处理并将结果发送回发件人的Actor的问题 为了更好地解释,这里是我的项目的工作流程Scala Akka演员返回不同类型的输出,scala,generics,akka,Scala,Generics,Akka,我有一个在scala中使用Akka Actors的项目,我遇到了一些关于执行处理并将结果发送回发件人的Actor的问题 为了更好地解释,这里是我的项目的工作流程 指挥官将消息发送给轮询器 轮询器向指挥官发送成功消息(self,List[String]) 指挥官将列表[字符串]发送给处理器 处理器向指挥官发送成功消息(self,File) 指挥官向上传者发送文件 上传程序向指挥官发送成功消息(self,布尔值) 等等 基本上,我有两个问题: 现在,我将演员返回给指挥官(主管)的所有
- 指挥官将消息发送给轮询器
- 轮询器向指挥官发送成功消息(self,List[String])
- 指挥官将列表[字符串]发送给处理器
- 处理器向指挥官发送成功消息(self,File)
- 指挥官向上传者发送文件
- 上传程序向指挥官发送成功消息(self,布尔值)
- 等等
成功消息还将有一个“有效负载”。我正在争论是对有效负载类型使用泛型,还是仅仅将其作为一个选项[Any],然后在将其发送给任何参与者(轮询器、处理器等)之前,在指挥官端进行大量转换。我知道在Java中,akka演员只是投射对象;我也必须这样做吗?我还没有看到您的代码,但我建议您做两件事:
消息填充(列表[字符串])
消息处理(文件)
和messagesupload
messagesnotupload(错误)
引用了三个参与者(它们有自己的workerCommander
):层次结构
仅将消息路由到动态创建的Poller
sPollerWorker
仅将消息路由到动态创建的处理器
s处理器工作者
仅将消息路由到动态创建的Uploader
sUploaderWorker
接收一条触发消息,并使用Commander
将第一条消息发送到ActorRef
下一步执行器Poller
指挥官
参与者我没有看到您的代码,但我建议您做两件事:
消息填充(列表[字符串])
消息处理(文件)
和messagesupload
messagesnotupload(错误)
引用了三个参与者(它们有自己的workerCommander
):层次结构
仅将消息路由到动态创建的Poller
sPollerWorker
仅将消息路由到动态创建的处理器
s处理器工作者
仅将消息路由到动态创建的Uploader
sUploaderWorker
接收一条触发消息,并使用Commander
将第一条消息发送到ActorRef
下一步执行器Poller
指挥官
参与者我没有看到您的代码,但我建议您做两件事:
消息填充(列表[字符串])
消息处理(文件)
和messagesupload
messagesnotupload(错误)
引用了三个参与者(它们有自己的workerCommander
):层次结构
仅将消息路由到动态创建的Poller
sPollerWorker
仅将消息路由到动态创建的处理器
s处理器工作者
仅将消息路由到动态创建的Uploader
sUploaderWorker
接收一条触发消息,并使用Commander
将第一条消息发送到ActorRef
下一步执行器Poller
指挥官
参与者我没有看到您的代码,但我建议您做两件事:
消息填充(列表[字符串])
消息处理(文件)
def receive = { case Polled(Some(result)) => // handle case Polled(None) => // handle case Processed(Some(result)) => // handle case Processed(None) => // handle case Uploaded(Some(result)) => // handle case Uploaded(None) => // handle }