Skip to content

Instantly share code, notes, and snippets.

@patriknw
Last active December 18, 2015 11:39
Show Gist options
  • Save patriknw/5777616 to your computer and use it in GitHub Desktop.
Save patriknw/5777616 to your computer and use it in GitHub Desktop.
Code for 2.2 spotlight: Cluster Member Age
// sort by age, oldest first
val ageOrdering = Ordering.fromLessThan[Member] { (a, b) =>
a.isOlderThan(b)
}
var membersByAge: SortedSet[Member] = SortedSet.empty(ageOrdering)
def receive = {
case state: CurrentClusterState =>
membersByAge = SortedSet.empty(ageOrdering) ++ state.members
}
case MemberUp(m) ⇒ membersByAge += m
case MemberRemoved(m, _) ⇒ membersByAge -= m
case msg =>
membersByAge.take(3).foreach { m ⇒
val service = context.actorSelection(
RootActorPath(m.address) / "user" / "service")
service ! msg
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment