是否可以将消息发送给某些演员只选择特定类型的类?
这里是按路径选择演员的代码:
Akka.system.actorSelection("/path")
答案 0 :(得分:3)
这是不可能的,因为演员是由他们的命名位置和他们处理的消息定义的。这就是ActorSelection
只能解析为ActorRef
(无论是使用Identify
还是.resolveOne
),从不背叛实施的原因。
这种安排的好处是任何参与者都可以用不同的实现,路由器,代理等替换,以适应处理消息的不断变化的需求。这也是您发送和接收消息而不是调用方法的原因,以便消息的接收者和任何最终的回复消息甚至不会绑定到同一个actor。
如果您希望为您的演员提供基于类的查找,最好的方法是自己设置一个注册表演员,通知演员创建并保留该信息,以便您可以查询它。