From dc24d1da7a52a849f359ea8c9000667cac61cc03 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Mon, 26 Feb 2018 13:10:53 +0100 Subject: [PATCH] Improve shutdown of MQ --- bchain/mq.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bchain/mq.go b/bchain/mq.go index f9a21c4a..cc60a0e1 100644 --- a/bchain/mq.go +++ b/bchain/mq.go @@ -2,6 +2,7 @@ package bchain import ( "encoding/binary" + "time" "github.com/golang/glog" zmq "github.com/pebbe/zmq4" @@ -60,12 +61,13 @@ func (mq *MQ) run(callback func(*MQMessage)) { for { msg, err := mq.socket.RecvMessageBytes(0) if err != nil { - if zmq.AsErrno(err) == zmq.Errno(zmq.ETERM) { + if zmq.AsErrno(err) == zmq.Errno(zmq.ETERM) || err.Error() == "Socket is closed" { close(mq.finished) glog.Info("MQ loop terminated") break } - glog.Error("MQ RecvMessageBytes error ", err) + glog.Error("MQ RecvMessageBytes error ", err, ", ", zmq.AsErrno(err)) + time.Sleep(100 * time.Millisecond) } if msg != nil && len(msg) >= 3 { sequence := uint32(0)