35 lines
765 B
Markdown
35 lines
765 B
Markdown
|
|
### 窗口周期计数器
|
|||
|
|
窗口周期计数类,用于记录一个窗口周期数量,并且触发某个操作的场景。
|
|||
|
|
在下一个窗口周期会自动重置次数
|
|||
|
|
|
|||
|
|
#### =======================>使用方法说明<=========================
|
|||
|
|
|
|||
|
|
1.引入包
|
|||
|
|
2.构造对象并次有
|
|||
|
|
3.调用对象的增加次数方法
|
|||
|
|
|
|||
|
|
```go
|
|||
|
|
package demo
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"time"
|
|||
|
|
|
|||
|
|
"goutil/counter_util"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
func main() {
|
|||
|
|
// 构造名字叫test的,窗口间隔为1s,计数达到2就会触发警告的窗口计数器
|
|||
|
|
c := counter_util.NewCounterUtil("test", 2, checkId, func(tag string, num int, ti time.Time) {
|
|||
|
|
//自定义触发动作
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
c.AddNum(1)
|
|||
|
|
c.AddNum(10)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 窗口周期设定为1s
|
|||
|
|
func checkId(t1, t2 time.Time) bool {
|
|||
|
|
return t1.Second() == t2.Second()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
```
|