From 109bec1e72285a4b58c7b4b3ae14105c7ffc7e4f Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Mon, 17 Oct 2016 16:43:27 +0200 Subject: only reconnect after net error --- src/daq/s5proxy/src/s5proxy/stats.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/daq/s5proxy/src/s5proxy/stats.go b/src/daq/s5proxy/src/s5proxy/stats.go index 2b3c5e2..96ccd74 100644 --- a/src/daq/s5proxy/src/s5proxy/stats.go +++ b/src/daq/s5proxy/src/s5proxy/stats.go @@ -187,7 +187,7 @@ func NewStats(conf *Config) (s *Stats, err error) { return } - s.updates = make(chan *DataUpdate, 100) + s.updates = make(chan *DataUpdate, 1000) s.workers = make(map[string]StatsWorker) var content, format, quality []string for _, desc := range conf.SFive.Streamer { @@ -227,15 +227,19 @@ func (s *Stats) sendUpdates() { upd.Hostname = s.conf.SFive.Hostname upd.Tags = s.conf.SFive.Tags upd.Duration = int64(s.conf.SFive.Duration) - // s5l.Printf("STATS: got data update for '%v'", upd) if err := s.dataEncoder.Encode(upd); err != nil { - s5l.Printf("STATS: json encode(): %s", err) - // TODO: check if error comes from the socket... - for { - time.Sleep(5 * time.Second) - s5l.Printf("STATS: attempting reconnect to hub") - if err := s.connectToHub(); err == nil { - break + nErr, ok := err.(*net.OpError) + if !ok { + s5l.Printf("STATS: json encode(): %s", err) + } else { + if !nErr.Temporary() { + for { + time.Sleep(5 * time.Second) + s5l.Printf("STATS: attempting reconnect to hub") + if err := s.connectToHub(); err == nil { + break + } + } } } } -- cgit v1.2.3