Inicjowanie aktora, zanim będzie mógł obsłużyć inne wiadomości

Mam aktora, który tworzy inny:

class MyActor1 extends Actor {
  val a2 = system actorOf Props(new MyActor(123))
}

Drugi aktor musi sam zainicjować (bootstrap) po utworzeniu, a dopiero potem musi wykonać inne zadanie.

class MyActor2(a: Int) extends Actor {
  //initialized (bootstrapped) itself, potentially a long operation 
  //how?
  val initValue = // get from a server

  //handle incoming messages
  def receive = {
    case "job1" => // do some job but after it's initialized (bootstrapped) itself
  }
}

Więc pierwsza rzeczMyActor2 musi zrobić to samemu wykonać inicjalizację. Może to zająć trochę czasu, ponieważ żądanie do serwera. Dopiero po pomyślnym zakończeniu musi być w stanie obsłużyć przychodzące wiadomościreceive. Wcześniej - nie może tego robić.

Oczywiście żądanie do serwera musi być asynchroniczne (najlepiej przy użyciuFuture, nieasync, await lub inne rzeczy na wysokim poziomieAsyncHttpClient). Wiem, jak korzystać z Future, ale to nie problem.

Jak to zapewnić?

p.s. Domyślam się, że najpierw musi wysłać do siebie wiadomość.

questionAnswers(2)

yourAnswerToTheQuestion