2015-03-20 1 views
5

In der klassischen Programmierung erstellen, verwende ich das obeserver Muster, falls ich möchte über Änderungen Beobachter benachrichtigen.Howto einen Beobachter wie die Kommunikation zwischen den Akteuren mit Akka

Was ist das Äquivalent Muster in Akka?

Anwendungsfall:

  • Ein Schauspieler (PropertyServiceActor) liest und Caching-Eigenschaften bilden die DB
  • Verschiedene Akteure der PropertyServiceActor registrieren
  • Wenn eine Eigenschaft ändert, benachrichtigt der PropertyServiceActor die registrierten Akteure über die Änderung

Antwort

5

Werfen Sie einen Blick auf BroadcastGroup

//Create group 
val paths = List("/user/workers/w1", "/user/workers/w2", "/user/workers/w3") 
val observers: ActorRef = context.actorOf(BroadcastGroup(paths).props(), "observers") 

Um alle Beobachter zu benachrichtigen, senden Sie einfach eine Nachricht an observers ActorRef. Sie können auch hinzufügen und Beobachter entfernen, indem akka.routing.AddRoutee und akka.routing.RemoveRoutee senden.

können Sie mehr routing docs finden.

Verwandte Themen