代码拉取完成,页面将自动刷新
package timers
import (
"gitee.com/jmesyan/impetus/utils/timer"
"time"
)
type Timers struct {
opts *Options
dispatcher *timer.Dispatcher
}
func NewTimer(opts ...Option) *Timers {
options := newOptions(opts...)
return &Timers{
opts: options,
}
}
func (t *Timers) OnInit() {
}
func (t *Timers) OnDestroy() {
}
func (t *Timers) OnRun(closeSig chan bool) {
go func() {
t.dispatcher = timer.NewDispatcher(t.opts.TimerDispatcherLen)
for {
select {
case <-closeSig:
return
case tt := <-t.dispatcher.ChanTimer:
tt.Cb()
}
}
}()
}
func (t *Timers) AfterFunc(d time.Duration, cb func()) *timer.Timer {
if t.opts.TimerDispatcherLen == 0 {
panic("invalid TimerDispatcherLen")
}
return t.dispatcher.AfterFunc(d, cb)
}
func (t *Timers) CronFunc(cronExpr *timer.CronExpr, cb func()) *timer.Cron {
if t.opts.TimerDispatcherLen == 0 {
panic("invalid TimerDispatcherLen")
}
return t.dispatcher.CronFunc(cronExpr, cb)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。