2017-01-24 4 views
1

J'apprends la programmation Akka Actor (Java), et je lis/regarde plusieurs tutoriels. Je pense que je comprends la plupart de celui-ci.Identification de plusieurs instances d'acteurs Akka

Mais une chose me déconcerte, et désolé si cela est une question Noob, mais il est d'avoir plusieurs instances d'acteurs, et comment créer/récupérer/les identifier?

Disons que j'ai un acteur de compte, et que vous souhaitez plusieurs instances. Suis-je censé conserver un enregistrement des "numéros de compte" et une référence à l'instance d'acteur appropriée? Comme un

Map<String,ActorRef> 

ou quelque chose, stocké dans l'acteur superviseur/parent?

Au démarrage, dois-je créer un acteur puis par compte, ou devrais-je avoir une usine qui crée l'acteur de compte lorsque son est nécessaire pour la première fois? Et qu'en est-il de la persistance? Disons que le compte veut charger une liste de transactions qui ont été appliquées?

Si je code tout cela manuellement, ou est-il une façon plus intelligente « meilleure pratique » ici que je ne comprends pas?

Répondre

0

Dans votre cas, vous pouvez simplement créer persistent actors sous le superviseur où id persistance correspondrait au numéro de compte. Par conséquent, le numéro de compte peut être utilisé comme identifiant unique. Pour obtenir des acteurs du contexte de superviseur, vous pouvez utiliser la méthode ActorContext#child ou simplement les récupérer du stockage persistant en utilisant ActorContext#actorOf s'ils ne se trouvent pas dans le contexte actuel du superviseur.