+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1

    Inscrit en
    février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 88
    Points : -11
    Points
    -11

    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
    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

    Inscrit en
    février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : février 2008
    Messages : 88
    Points : -11
    Points
    -11

    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 :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •