func (agent *ActionAgent) initHealthCheck() { if !agent.IsRunningHealthCheck() { log.Infof("No target_tablet_type specified, disabling any health check") return } tt, err := topoproto.ParseTabletType(*targetTabletType) if err != nil { log.Fatalf("Invalid target tablet type %v: %v", *targetTabletType, err) } log.Infof("Starting periodic health check every %v with target_tablet_type=%v", *healthCheckInterval, *targetTabletType) t := timer.NewTimer(*healthCheckInterval) servenv.OnTermSync(func() { // When we enter lameduck mode, we want to not call // the health check any more. After this returns, we // are guaranteed to not call it. log.Info("Stopping periodic health check timer") t.Stop() // Now we can finish up and force ourselves to not healthy. agent.terminateHealthChecks(tt) }) t.Start(func() { agent.runHealthCheck(tt) }) t.Trigger() }
// initHealthCheck will start the health check background go routine, // and configure the healthcheck shutdown. It is only run by NewActionAgent // for real vttablet agents (not by tests, nor vtcombo). func (agent *ActionAgent) initHealthCheck() { registerReplicationReporter(agent) log.Infof("Starting periodic health check every %v", *healthCheckInterval) t := timer.NewTimer(*healthCheckInterval) servenv.OnTermSync(func() { // When we enter lameduck mode, we want to not call // the health check any more. After this returns, we // are guaranteed to not call it. log.Info("Stopping periodic health check timer") t.Stop() // Now we can finish up and force ourselves to not healthy. agent.terminateHealthChecks() }) t.Start(func() { agent.runHealthCheck() }) t.Trigger() }