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中实现这一点?

akka.net是一种获取或创建actor的方法

您可以使用Context.Child(actorName)方法检查当前演员是否有具有提供名称的子角色。如果存在,则返回目标actor的ref;如果不存在,则返回ActorRefs.Nobody

在这种情况下,代码可能看起来像:
var child = Context.Child(actorName);
if (Equals(child, ActorRefs.Nobody))
    child = Context.ActorOf(MyActor.Props(message), actorName);