[英]akka.net is there a a way to get or create actor
對於我的actor層次結構,在通過幾個actor處理數據之前,我不知道我需要的所有actor,因此我正在尋找一種方法來返回現有的ActorRef或創建一個新的動作。 這就是我希望下面的代碼創建一個actor,如果一個不存在於“my-id-1”或者返回已經存在的那個。
Context.ActorOf(MyActor.Props(message), "my-id-1");
如果actor已經存在,上面的代碼將(如文檔所述)拋出InvalidActorNameException
。 我怎樣才能在Akka.net中實現這一目標?
您可以使用Context.Child(actorName)
方法檢查當前actor是否具有提供名稱的子級。 它將返回目標actor的actor ref(如果存在)或ActorRefs.Nobody
如果沒有這樣的actor。
您的案例中的代碼可能如下所示:
var child = Context.Child(actorName);
if (Equals(child, ActorRefs.Nobody))
child = Context.ActorOf(MyActor.Props(message), actorName);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.