Merge branch 'master' into wip-2284-heartbeat-scalability-patriknw

Conflicts:
	akka-cluster/src/main/scala/akka/cluster/ClusterDaemon.scala
This commit is contained in:
Patrik Nordwall 2012-10-09 18:11:36 +02:00
commit 668d5a5013
9 changed files with 48 additions and 148 deletions

View file

@ -194,29 +194,22 @@ private[cluster] final class ClusterCoreDaemon(publisher: ActorRef) extends Acto
import context.dispatcher
// start periodic gossip to random nodes in cluster
val gossipTask =
FixedRateTask(scheduler, PeriodicTasksInitialDelay.max(GossipInterval).asInstanceOf[FiniteDuration], GossipInterval) {
self ! GossipTick
}
val gossipTask = scheduler.schedule(PeriodicTasksInitialDelay.max(GossipInterval).asInstanceOf[FiniteDuration],
GossipInterval, self, GossipTick)
// start periodic cluster failure detector reaping (moving nodes condemned by the failure detector to unreachable list)
val failureDetectorReaperTask =
FixedRateTask(scheduler, PeriodicTasksInitialDelay.max(UnreachableNodesReaperInterval).asInstanceOf[FiniteDuration], UnreachableNodesReaperInterval) {
self ! ReapUnreachableTick
}
val failureDetectorReaperTask = scheduler.schedule(PeriodicTasksInitialDelay.max(UnreachableNodesReaperInterval).asInstanceOf[FiniteDuration],
UnreachableNodesReaperInterval, self, ReapUnreachableTick)
// start periodic leader action management (only applies for the current leader)
private val leaderActionsTask =
FixedRateTask(scheduler, PeriodicTasksInitialDelay.max(LeaderActionsInterval).asInstanceOf[FiniteDuration], LeaderActionsInterval) {
self ! LeaderActionsTick
}
val leaderActionsTask = scheduler.schedule(PeriodicTasksInitialDelay.max(LeaderActionsInterval).asInstanceOf[FiniteDuration],
LeaderActionsInterval, self, LeaderActionsTick)
// start periodic publish of current stats
private val publishStatsTask: Option[Cancellable] =
val publishStatsTask: Option[Cancellable] =
if (PublishStatsInterval == Duration.Zero) None
else Some(FixedRateTask(scheduler, PeriodicTasksInitialDelay.max(PublishStatsInterval).asInstanceOf[FiniteDuration], PublishStatsInterval) {
self ! PublishStatsTick
})
else Some(scheduler.schedule(PeriodicTasksInitialDelay.max(PublishStatsInterval).asInstanceOf[FiniteDuration],
PublishStatsInterval, self, PublishStatsTick))
override def preStart(): Unit = {
if (AutoJoin) self ! JoinSeedNodes(SeedNodes)