Akka.Net Remoting:ActorSelection vs. IActorRef
问题描述:
将Akka.net与远程处理结合使用。 This article有以下说关于使用ActorSelection:Akka.Net Remoting:ActorSelection vs. IActorRef
其他时候,我倾向于使用ActorSelection是当我最初 与远程演员系统通信。
我不太明白的是如何将最初的ActorSelection转换为IActorRef,我可以继续使用。
答
这里最简单的方法是使用actorSelection.ResolveOne(timeout)
方法,该方法将返回Task<IActorRef>
。如果在提供的路径下未找到演员,则任务也可能以超时或ActorNotFoundException
结束。
另一种 - 更多演员 - 惯用 - 的方式是发送Identify(correlationId)
消息给演员选择。它应回应ActorIdentity(correlationId, actorRef)
回复。请注意,如果没有人在提供的演员选择下进行倾听,它可能根本没有反应。
那么在哪种情况下我应该选择哪种方式? – Max
经验法则是,我们喜欢在任务内部使用消息。所以,当你在演员内部从演员选择中解析'IActorRef'时,使用'Identify'并为'ActorIdentity'设置接收者。当从actor系统外部解析时,使用'ResolveOne'。 – Horusiath