1 Star 0 Fork 0

wosylf/龙飞工具仓库

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
定时任务.go 1.35 KB
一键复制 编辑 原始数据 按行查看 历史
itlun 提交于 2024-09-04 16:44 +08:00 . 1
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 {}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wosylf/ltool.git
git@gitee.com:wosylf/ltool.git
wosylf
ltool
龙飞工具仓库
4aab2f4b94f9

搜索帮助