Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage > Scala
Scala Forum d'entraide pour le langage Scala
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/06/2011, 12h41   #1
kaljerhom
 
Inscription : février 2008
Messages : 88
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 88
Points : -12
Points : -12
Par défaut [akka 1.1.2] - réponse asynchrone bloquante Actor

Bonjour,

J'envoi un message à un 'actor akka' et j'attend une réponse à cet envoi en utilisant la méthode '!!!'.

Le code de mon acteur
Code :
1
2
3
4
5
6
7
 
class MyActor entends Actor {
   def receive = {
      case "message" => "réponse"
      case _ => println("pas le bon message")
   }
}
Le code appelant (un TU)
Code :
1
2
3
4
5
6
7
 
def test() {
   val myActor = Actor.actorOf(new MyActor()).start()
   val f: Future[String] = myActor !!! "message"
   val content = f.get
   content should not be (null)
}
Mon souci est que quand je lance le test, je reçois une
Citation:
akka.dispatch.FutureTimeoutException : Futures timed out after [5000] milliseconds
L'actor scala reçoit bien le message mais l'appelant lui ne reçoit pas de réponse.
Voyez vous quelque chose dans mon code que j'aurais oublié ?

Merci d'avance pour vos réponses.
kaljerhom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 14h20   #2
kaljerhom
 
Inscription : février 2008
Messages : 88
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 88
Points : -12
Points : -12
Bon bah j'ai trouvé tout seul.
La réponse est qu'il faut peut être dire à l'acteur qu'il doit répondre (ca semble logique ).

Du coup le code de l'acteur devient :

Code :
1
2
3
4
5
6
7
 
class MyActor entends Actor {
   def receive = {
      case "message" => self.channel ! "réponse"
      case _ => println("pas le bon message")
   }
}
voila.
kaljerhom est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web