【发布时间】:2015-12-29 12:16:51
【问题描述】:
嗨我想在演员系统中创建一个演员,如果它还没有在这里创建是我的代码
val sel = actorSystem.actorSelection("akka://ActorSystem/user/ReadOnlyAdminIndexMongoActor");
val asker = new AskableActorSelection(sel);
val future = asker.ask( Identify(1),Timeout(30 seconds))
val identity=Await.result(future, timeout.duration).asInstanceOf[ActorIdentity]
val reference = identity.getRef
if(reference != null){
log.info("actor does not exists")
}
else
{
log.info("actor exists"+sel.toString())
}
但是这段代码抛出异常
17:00:19.547 1822010 [ArteciateActorSystem-akka.actor.default-dispatcher-7] EmptyLocalActorRef INFO - Message [scala.Tuple2] from Actor[akka://ActorSystem/temp/$e] to Actor[akka://ActorSystem/user/ReadOnlyAdminIndexMongoActor] was not delivered. [5] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
java.util.concurrent.TimeoutException: Futures timed out after [30 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:190)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
at scala.concurrent.Await$.result(package.scala:190)
at models.Global$.checkActor(Global.scala:71)
这是第 71 行的代码
val identity=Await.result(future, timeout.duration).asInstanceOf[ActorIdentity]
请帮助我在哪里弄错了,而且我正在使用这个Link和这个Link the code givein in an accepted answer的代码
【问题讨论】: