[service] Improve rng tickfeeder
This commit is contained in:
@@ -38,11 +38,15 @@ func tickFeeder(ctx *mgr.WorkerCtx) error {
|
|||||||
feeder := NewFeeder()
|
feeder := NewFeeder()
|
||||||
defer feeder.CloseFeeder()
|
defer feeder.CloseFeeder()
|
||||||
|
|
||||||
tickDuration := getTickFeederTickDuration()
|
ticker := time.NewTicker(getTickFeederTickDuration())
|
||||||
|
defer ticker.Stop()
|
||||||
|
|
||||||
for {
|
for {
|
||||||
// wait for tick
|
select {
|
||||||
time.Sleep(tickDuration)
|
case <-ticker.C:
|
||||||
|
case <-ctx.Done():
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// add tick value
|
// add tick value
|
||||||
value = (value << 1) | (time.Now().UnixNano() % 2)
|
value = (value << 1) | (time.Now().UnixNano() % 2)
|
||||||
@@ -64,13 +68,6 @@ func tickFeeder(ctx *mgr.WorkerCtx) error {
|
|||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// check if are done
|
|
||||||
select {
|
|
||||||
case <-ctx.Done():
|
|
||||||
return nil
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user