sync/pipeline: using timer replace ticker (#477)

pull/538/head
Astone 5 years ago committed by GitHub
parent 04948fd5cc
commit f2c6751ed4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 29
      pkg/sync/pipeline/pipeline.go

@ -169,17 +169,18 @@ func (p *Pipeline) Close() (err error) {
func (p *Pipeline) mergeproc(mirror bool, index int, ch <-chan *message) { func (p *Pipeline) mergeproc(mirror bool, index int, ch <-chan *message) {
defer p.wait.Done() defer p.wait.Done()
var ( var (
m *message m *message
vals = make(map[string][]interface{}, p.config.MaxSize) vals = make(map[string][]interface{}, p.config.MaxSize)
closed bool closed bool
count int count int
inteval = p.config.Interval inteval = p.config.Interval
oldTicker = true timeout = false
) )
if index > 0 { if index > 0 {
inteval = xtime.Duration(int64(index) * (int64(p.config.Interval) / int64(p.config.Worker))) inteval = xtime.Duration(int64(index) * (int64(p.config.Interval) / int64(p.config.Worker)))
} }
ticker := time.NewTicker(time.Duration(inteval)) timer := time.NewTimer(time.Duration(inteval))
defer timer.Stop()
for { for {
select { select {
case m = <-ch: case m = <-ch:
@ -193,12 +194,8 @@ func (p *Pipeline) mergeproc(mirror bool, index int, ch <-chan *message) {
break break
} }
continue continue
case <-ticker.C: case <-timer.C:
if oldTicker { timeout = true
ticker.Stop()
ticker = time.NewTicker(time.Duration(p.config.Interval))
oldTicker = false
}
} }
name := p.name name := p.name
process := count process := count
@ -215,8 +212,12 @@ func (p *Pipeline) mergeproc(mirror bool, index int, ch <-chan *message) {
_metricChanLen.Set(float64(len(ch)), name, strconv.Itoa(index)) _metricChanLen.Set(float64(len(ch)), name, strconv.Itoa(index))
_metricCount.Add(float64(process), name, strconv.Itoa(index)) _metricCount.Add(float64(process), name, strconv.Itoa(index))
if closed { if closed {
ticker.Stop()
return return
} }
if !timer.Stop() && !timeout {
<-timer.C
timeout = false
}
timer.Reset(time.Duration(p.config.Interval))
} }
} }

Loading…
Cancel
Save