refactoring TimeNormalizer impl
Vladimir Bauer
6 years ago
| 167 | 167 | var normalized time.Duration |
| 168 | 168 | var lastCall time.Time |
| 169 | 169 | return TimeNormalizerFunc(func(remaining time.Duration) time.Duration { |
| 170 | if diff := normalized - remaining; diff <= 0 || diff > maxTolerate || remaining < maxTolerate/2 { | |
| 170 | if diff := normalized - remaining; diff <= 0 || diff > maxTolerate || remaining < time.Minute { | |
| 171 | 171 | normalized = remaining |
| 172 | 172 | lastCall = time.Now() |
| 173 | 173 | return remaining |
| 184 | 184 | var lastCall time.Time |
| 185 | 185 | var count int |
| 186 | 186 | return TimeNormalizerFunc(func(remaining time.Duration) time.Duration { |
| 187 | if count == 0 || remaining <= time.Duration(15*time.Second) { | |
| 187 | if count == 0 || remaining < time.Minute { | |
| 188 | 188 | count = updInterval |
| 189 | 189 | normalized = remaining |
| 190 | 190 | lastCall = time.Now() |
| 193 | 193 | count-- |
| 194 | 194 | normalized -= time.Since(lastCall) |
| 195 | 195 | lastCall = time.Now() |
| 196 | if normalized > 0 { | |
| 197 | return normalized | |
| 198 | } | |
| 199 | return remaining | |
| 196 | return normalized | |
| 200 | 197 | }) |
| 201 | 198 | } |
| 202 | 199 | |