akka.net是一种获取或创建actor的方法
本文关键字:获取 创建 actor 方法 一种 net akka | 更新日期: 2023-09-27 18:11:50
对于我的actor层次结构,我不知道我需要的所有actor,直到我通过几个actor处理数据,所以我正在寻找一种方法来返回现有的ActorRef或创建一个新操作。这就是我希望下面的代码,如果"my-id-1"不存在,则创建一个参与者,或者返回已经存在的参与者。
Context.ActorOf(MyActor.Props(message), "my-id-1");
如果参与者已经存在,上述代码将(如文档所述)抛出一个InvalidActorNameException
。如何在Akka.net中实现这一点?
您可以使用Context.Child(actorName)
方法检查当前演员是否有具有提供名称的子角色。如果存在,则返回目标actor的ref;如果不存在,则返回ActorRefs.Nobody
。
var child = Context.Child(actorName);
if (Equals(child, ActorRefs.Nobody))
child = Context.ActorOf(MyActor.Props(message), actorName);