2015-08-05 4 views
5

Ich versuche, eine Art von Console Writer für alle meine Schauspieler zu implementieren. Hier ist mein Code:So erhalten Sie jede Art von Nachricht in Akka.Net Receive Actor

class ConsoleWriterActor : ReceiveActor 
{ 
    public ConsoleWriterActor() 
    { 
     Receive<object>(s => 
     { 
      Console.WriteLine(s.ToString()); 
     } 
    } 
} 

Das Problem ist, irgendwie der Schauspieler tut keine Nachrichten empfangen. Ich habe dieses Protokoll von der Konsole:

[INFO][8/5/2015 7:30:06 AM][Thread 0013 [akka://SPBOActorSystem/user/ConsoleWriterActor] Message StartDbOperator from akka://SPBOActorSystem/user/DbOperatorActor to akka://SPBOActorSystem/user/ConsoleWriterActor was not delivered. 1 dead letters encountered.  

Was lief schief?

+0

Ich entschuldige mich. Der Konsolenschauspieler wurde mit verschiedenen Requisiten instanziiert. – himekami

Antwort

7

Klingt wie Sie die DeadLetters Frage aussortiert. Um Ihre ursprüngliche Frage zu beantworten: Um eine Nachricht in einem ReceiveActor zu erhalten, verwenden ReceiveAny (docs), etwa so:

class ConsoleWriterActor : ReceiveActor 
{ 
    public ConsoleWriterActor() 
    { 
     ReceiveAny(o => Console.WriteLine("Received object: " + o)); 
    } 
} 
+1

Danke. Ich wusste nicht, dass ReceiveAny() existiert. – himekami

Verwandte Themen