トップレベルのアクター (ガーディアンの下) がGroups
あり、起動時にデータベースからグループのリストをロードし、データベース内のそれらのグループに基づいて一連の子アクターを作成する必要があります。
preStart
グループがロードされる前にメッセージを処理したくないので、関数内にデータベース ロード コードを配置しました。
現在、私のGroups
アクターは次のようになっています。
var groups: Map[String, ActorRef] = Map()
override def preStart() = {
groups = getGroupsFromDB() map createGroup
}
def createGroup(pair: (String, Long)) = {
val (name, id) = pair
val group = context.actorOf(Props(new Group(id, name)), name = name)
name -> group
}
ただし、これがこれを処理する最善の方法だとは思いません。データベース サーバーが利用できない場合はどうなりますか? では、データベースからのデータの初期化を処理する最善の方法は何ですか?