Support cross team in ClusterSingletonProxy, #23230

This commit is contained in:
Patrik Nordwall 2017-06-26 16:28:44 +02:00
parent ccea5a0eac
commit 2044c1712b
3 changed files with 54 additions and 23 deletions

View file

@ -30,6 +30,7 @@ import akka.Done
import akka.actor.CoordinatedShutdown
import akka.pattern.ask
import akka.util.Timeout
import akka.cluster.ClusterSettings
object ClusterSingletonManagerSettings {
@ -256,12 +257,10 @@ object ClusterSingletonManager {
}
override def postStop(): Unit = cluster.unsubscribe(self)
private val selfTeam = "team-" + cluster.settings.Team
private val selfTeam = ClusterSettings.TeamRolePrefix + cluster.settings.Team
def matchingRole(member: Member): Boolean = member.hasRole(selfTeam) && (role match {
case None true
case Some(r) member.hasRole(r)
})
def matchingRole(member: Member): Boolean =
member.hasRole(selfTeam) && role.forall(member.hasRole)
def trackChange(block: () Unit): Unit = {
val before = membersByAge.headOption