Akka.Net Remoting:ActorSelection与IActorRef

Phi*_*ler 6 c# akka akka.net

使用Akka.net进行远程处理. 本文有关于使用ActorSelection的以下内容:

我倾向于使用ActorSelection的另一次是我最初与远程actor系统进行通信的时候.

我不太明白的是如何将初始的ActorSelection转换为我可以继续使用的IActorRef.

Bar*_*ski 10

这里最简单的方法是使用actorSelection.ResolveOne(timeout)方法,它将返回Task<IActorRef>.任务也可以以超时结束,或者ActorNotFoundException在提供的路径下没有找到actor的情况下结束.

另一种 - 更多的演员 - 惯用 - 方式是Identify(correlationId)向演员选择发送消息.它应该ActorIdentity(correlationId, actorRef)回复.请注意,如果根据提供的演员选择没有人听,它可能根本没有响应.

  • 经验法则是内部演员我们更喜欢使用消息而不是任务.因此,当你从一个actor中的actor选择中解析`IActorRef`时,使用`Identify`并为`ActorIdentity`设置receiver.从actor系统外部解析时,请使用`ResolveOne`. (3认同)