IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scala Java Discussion :

[akka 1.1.2] - réponse asynchrone bloquante Actor


Sujet :

Scala Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 14
    Points
    14
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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.

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 14
    Points
    14
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/01/2014, 14h52
  2. Socket Asynchrone, Connect() non bloquant
    Par quentin869 dans le forum Général Python
    Réponses: 1
    Dernier message: 01/09/2013, 17h28
  3. Attendre la réponse(asynchrone)
    Par Poumchimie dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/08/2013, 17h09
  4. boos::asio asynchrone mais io.run() bloquant
    Par guillaume07 dans le forum Boost
    Réponses: 7
    Dernier message: 09/12/2010, 16h29
  5. Réponses: 2
    Dernier message: 20/08/2008, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo