Может ли анонимный актер Akka получить доступ к себе?

Может ли анонимный актер Akka иметь доступ к себе? В моем конкретном случае мне интересно, могу ли я ответить отправителю кодом, подобным этому (не компилируется из-за того, что я не найден):

val xmlLoader = Actor.init {
    println("xml loader started")
} receive {
    case LoadResource(url) => {
        try {
            val xml = XML.load( URL("content.xml") )
            self.senderFuture.foreach(_.completeWithResult(xml))
        } catch {
            case e => self.senderFuture.foreach(_.completeWithException(e))
        }
    }
    case _ =>
}

person BefittingTheorem    schedule 11.10.2010    source источник


Ответы (1)


Прежде всего, спасибо за использование Akka, надеюсь, вам это нравится!

Я бы рекомендовал:

actorOf(
new Actor {
 def receive = { case "foo" => self.reply_?("bar") }
})
person Viktor Klang    schedule 12.10.2010
comment
Спасибо, Виктор, я подозревал, что проблема в анонимности актера. Благодарю за разъяснение. И да, Акка мне очень нравится ;) - person BefittingTheorem; 12.10.2010
comment
Круто, получайте удовольствие и счастливого хакинга! - person Viktor Klang; 12.10.2010
comment
Как насчет: def acter(act: PartialFunction[Any, Unit]) = actOf(new Actor { def receive = act }).start() - person raichoo; 09.10.2011
comment
В 2.0 у вас есть: def actorOf(f: ActorContext => Receive): ActorRef, (запуск больше не нужен) - person Viktor Klang; 09.10.2011
comment
raichoo: В вашем предложении у вас нет доступа к себе. - person Viktor Klang; 09.10.2011
comment
actorOf из какого класса? Начиная с akka 2.3.x ActorSystem.actorOf не работает - person kostya; 09.06.2015
comment
@kostya Попробуй context.actorOf(Props(new Actor{ override def receive: Actor.Receive = ??? })) - person neurozen; 25.11.2015