代码拉取完成,页面将自动刷新
package xutil
import (
"fmt"
"time"
"github.com/robfig/cron/v3"
)
type S定时任务 struct {
C *cron.Cron
}
func F新建定时任务() *S定时任务 {
return &S定时任务{
C: cron.New(),
}
}
/*
func aa() {
// 新建一个定时任务对象,根据cron表达式进行时间调度,cron可以精确到秒,大部分表达式格式也是从秒开始
// 默认从分开始进行时间调度
// cronTab := cron.New()
// 精确到秒
cronTab := cron.New(cron.WithSeconds())
// 定义定时器调用的任务函数
task := func() {
fmt.Println("hello world", time.Now())
}
// 定时任务,cron表达式,每五秒一次
spec := `* /5 * * * * ?`
// 添加定时任务
cronTab.AddFunc(spec, task)
// 启动定时器
cronTab.Start()
// 阻塞主线程停止
select {}
}
*/
func (a *S定时任务) F添加任务(spec string, task func()) (cron.EntryID, error) {
return a.C.AddFunc(spec, task)
}
func (a *S定时任务) F添加每天此时(task func()) (cron.EntryID, error) {
spec := a.F获取当前第几分钟()
return a.C.AddFunc(spec, task)
}
func (a *S定时任务) F获取当前第几分钟() string {
now := time.Now()
// 获取时分秒
hours := now.Hour()
minutes := now.Minute()
return fmt.Sprintf("%v %v * * *", minutes, hours)
}
func (a *S定时任务) F开启() {
a.C.Start()
// 阻塞主线程停止
select {}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。