package main import ( "app.yhyue.com/BP/servicerd/proto" "log" "time" ) /** 心跳服务 */ type Heartbeat struct { } // func (h *Heartbeat) PutStream(cliStr proto.HeartBeat_PutStreamServer) error { for { if tem, err := cliStr.Recv(); err == nil { log.Printf("心跳包- %s--%s \n", tem.ServiceName, tem.ServiceAddr) UpdateServiceMetaTtl(tem.ServiceAddr) } else { log.Println("break, err :", err) break } } return nil } //过期服务清理 func ClearTimeoutService(ttl int64) { timeout := ttl * 2 tm := time.NewTicker(time.Duration(ttl) * time.Second) for { select { case <-tm.C: //TODO 过滤过期服务 RemoveTimeoutService(timeout) } } }