1.背景
- 定时实现清理/刷新 缓存
- 定时调度任务
- …
2.实现
通过 time.NewTicker 实现
func (a *Alerts) Run(ctx context.Context, interval time.Duration) {
t := time.NewTicker(interval)
defer t.Stop()
for {
select {
case <-ctx.Done():
return
case <-t.C:
a.gc()
}
}
}
3.结论
通过 time.NewTicker 实现轻量级定时执行任务调度