J'écris un programme qui doit interagir avec une bibliothèque qui a été implémentée en utilisant Akka. En détail, cette bibliothèque expose un acteur en tant que point de terminaison. Pour autant que je sache et comme il est expliqué dans le livre Applied Akka Pattern, la meilleure façon d'interagir avec un système Actor de l'extérieur est d'utiliser Ask Pattern.Akka Ask Pattern avec de nombreux types de réponses
La bibliothèque que je dois utiliser expose un acteur Main
qui accepte un message Create
. En réponse à ce message, il peut répondre avec deux messages différents à l'appelant, CreateAck
et CreateNack(error)
.
Le code que j'utilise est plus ou moins le suivant.
implicit val timeout = Timeout(5 seconds)
def create() = (mainActor ? Create).mapTo[???]
Le problème est clairement que je ne sais pas quel genre de type que je dois utiliser en fonction mapTo
, au lieu de ???
. Est-ce que j'utilise la bonne approche?
Existe-t-il un autre modèle utile pour accéder à un système d'acteur à partir d'un programme externe qui n'utilise pas Actors?
Merci beaucoup. Très belle et complète explication. En ce qui concerne votre phrase - ce qui rend le protocole compréhensible, et traçable, leur vrai programme utilise des noms compréhensibles :) –