1
0
mirror of https://github.com/go-kratos/kratos.git synced 2025-03-17 21:07:54 +02:00

avoid ticker leak when cpustat.ReadStat(...) panic

This commit is contained in:
kevin 2019-06-13 13:21:23 +08:00
parent 16ad37314d
commit b94e5ecd9f

View File

@ -32,13 +32,15 @@ func init() {
}
func cpuproc() {
ticker := time.NewTicker(time.Millisecond * 250)
defer func() {
ticker.Stop()
if err := recover(); err != nil {
log.Error("rate.limit.cpuproc() err(%+v)", err)
go cpuproc()
}
}()
ticker := time.NewTicker(time.Millisecond * 250)
// EMA algorithm: https://blog.csdn.net/m0_38106113/article/details/81542863
for range ticker.C {
stat := &cpustat.Stat{}