mirror of
https://github.com/xxjwxc/public.git
synced 2025-09-26 20:01:19 +08:00
38 lines
579 B
Go
38 lines
579 B
Go
package timerDeal
|
|
|
|
import (
|
|
"log"
|
|
"time"
|
|
)
|
|
|
|
type TimerDeal struct {
|
|
f_list []func()
|
|
f_d_timeout time.Duration
|
|
}
|
|
|
|
//增加一个回调
|
|
func (t *TimerDeal) AddOneCall(f func()) {
|
|
t.f_list = append(t.f_list, f)
|
|
}
|
|
|
|
//设置超时时间
|
|
func (t *TimerDeal) SetCallBackTimer(d time.Duration) {
|
|
t.f_d_timeout = d
|
|
}
|
|
|
|
func (t *TimerDeal) OnSart() {
|
|
//time.Tick()
|
|
go t.onTick()
|
|
}
|
|
|
|
func (t *TimerDeal) onTick() {
|
|
ticker := time.NewTicker(t.f_d_timeout)
|
|
for {
|
|
time := <-ticker.C
|
|
for _, v := range t.f_list {
|
|
v()
|
|
}
|
|
log.Println("timer callback:", time.String())
|
|
}
|
|
}
|