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)回复。请注意,如果没有人在提供的演员选择下进行倾听,它可能根本没有反应。

+0

那么在哪种情况下我应该选择哪种方式? – Max

+2

经验法则是,我们喜欢在任务内部使用消息。所以,当你在演员内部从演员选择中解析'IActorRef'时,使用'Identify'并为'ActorIdentity'设置接收者。当从actor系统外部解析时,使用'ResolveOne'。 – Horusiath