12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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)
- }
- }
- }
|