Scala Akka | Как использовать свойство allButSelf внутри кластера?

#scala #akka

#scala #akka

Вопрос:

На основе документации Akka для кластера, хотел бы я опубликовать широкое сообщение для всех узлов в кластере, кроме меня. В настоящее время он также всегда отправляет мне общее сообщение.

 val mediator = DistributedPubSub(context.system).mediator
mediator ! Subscribe("content", self)       // subscribe to the topic named "content"
mediator ! Publish("content", "msg")        // sends the msg out Broad to all nodes including myself
  

Как именно я могу установить свойство документации «allButSelf»?

https://doc.akka.io/docs/akka/current/distributed-pub-sub.html

Ответ №1:

Вы хотите сделать

 mediator ! DistributedPubSubMediator.Put(testActor)
mediator ! DistributedPubSubMediator.SendToAll(path, msg, allButSelf=false) // it is false by default
  

Смотрите пример здесь https://github.com/akka/akka/blob/0e4d41ad33dbeb00b598cb75b4d29899371bdc8c/akka-cluster-tools/src/test/scala/akka/cluster/pubsub/DistributedPubSubMediatorRouterSpec.scala#L56