From e03a22cc6e359108bd2d4f8e53e7e1618099e500 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期三, 28 四月 2021 18:04:38 +0800 Subject: [PATCH] start heartbeat after register --- micronode.go | 16 +++++----------- 1 files changed, 5 insertions(+), 11 deletions(-) diff --git a/micronode.go b/micronode.go index a826412..69ffde0 100644 --- a/micronode.go +++ b/micronode.go @@ -42,6 +42,8 @@ SubCh: make(chan *bhome_msg.MsgPublish, 512), } + go startHeartbeat(ctx, handle) + return mn, nil } @@ -64,16 +66,16 @@ return errors.New("ms.handle is nil") } -func (ms *MicroNode) startHeartbeat() { +func startHeartbeat(ctx context.Context, h *BHBus) { t := time.NewTicker(1 * time.Second) defer t.Stop() for { select { - case <-ms.ctx.Done(): + case <-ctx.Done(): return case <-t.C: - ms.handle.HeartBeat() + h.HeartBeat() default: time.Sleep(500 * time.Millisecond) } @@ -81,13 +83,7 @@ } func (ms *MicroNode) StartClient() { - ms.mtx.Lock() - defer ms.mtx.Unlock() - if !ms.started { - ms.started = true - go ms.startHeartbeat() - } } func (ms *MicroNode) StartServer(funcMap map[string]MicroFunc) { @@ -97,8 +93,6 @@ ms.mtx.Unlock() ms.handlers = funcMap - - go ms.startHeartbeat() for { select { -- Gitblit v1.8.0