2015-09-11 1 views
0

Existe-t-il un moyen d'ajouter une sorte de payload (message attaché) lors de l'envoi d'un message à un acteur akka? Je sais qu'il existe un moyen de le faire en utilisant routers, mais cela peut-il être réalisé par simple passage de message?Envoyer une charge utile lors de l'envoi d'un message à un acteur akka

Par simple passage de message, je veux dire quelque chose comme ça remoteActor ! "hi".

+2

Vous pouvez envoyer une instance 'Serializable' que vous aimez comme un message . Des classes de cas personnalisées sont couramment utilisées pour cela, en conservant la charge utile que vous souhaitez. – Shadowlands

Répondre

0

Oui, oui vous pouvez. Vous pouvez envoyer n'importe quelle charge utile mais elle doit être immuable (pour autant que je sache). La plupart des gens utilisent des classes de cas. Par exemple.

case class Payload(pay: List[String], load: Int) 

alors vous pouvez le faire comme suit

actorRef ! Payload(List("string1","1gnirts"),69) 

mais vous HVE de se rappeler de créer cas où il convient de recevoir

def receive = 
    case Payload(pay,load) => doSomeStuff(load,pay)