func (ri *ReportInfo) MonitorHandler(ag agent.Agent, conn net.Conn, msg map[string]interface{}) {
	log.Println("MonitorHandler is called")
	rwLock.Lock()
	defer rwLock.Unlock()
	// msg == nil表示是定期执行的任务.
	if msg == nil {
		if ag.IsMaster() {
			return
		}
		monitorAgent, ok := ag.(*agent.MonitorAgent)
		if ok == false {
			seelog.Criticalf("MonitorHandler: Fail to convert to MonitorAgent,exit...")
			os.Exit(0)
		}
		serverInfo := monitorAgent.GetServerInfo()
		if serverInfo != nil {
			infoAsString := ri.getServerInfoAsString(serverInfo)
			ri.client.Sadd(serverInfo["serverType"].(string), []byte(serverInfo["id"].(string)))
			ri.client.Set(serverInfo["id"].(string), []byte(infoAsString))
			ri.client.Expire(serverInfo["id"].(string), int64(2*ri.interval))
		}

	}
}