基于go语言的定时脚本任务.zip
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
基于go语言的定时脚本任务.zip 示例代码 package xz_crontab import ( "context" "log" "testing" "time" ) func Test_crontab(t *testing.T) { jobs := []Job{ { Name: "test", Par: "1", //CronExpr: "45 59 23 * * * *", // 23 点 59分 45 秒 CronExpr: "*/5 * * * * * *", // 5s执行一次 IsOpen: false, // true 开启脚本 false 关闭脚本 Callback: callback, // 设置你调用的函数 }, { Name: "test2", Par: "1", //CronExpr: "45 59 23 * * * *", // 23 点 59分 45 秒 CronExpr: "*/11 * * * * * *", // 5s执行一次 IsOpen: false, // true 开启脚本 false 关闭脚本 Callback: callback, // 设置你调用的函数 }, { Name: "test3", Par: "1", IsOpen: true, // true 开启脚本 false 关闭脚本 Callback: OnceTest2, // 设置你调用的函数 Once: true, // 只执行一次 }, } model := InitCrontab(jobs) go func() { for { select { case timeDate := <-model.NextChGet(): log.Println("下次执行时间", timeDate) } } }() time.Sleep(20*time.Second) model.Stop() select { } } func OnceTest(par ...interface{})(err error) { log.Println("只执行一次") return nil } func OnceTest2(par ...interface{})(err error) { res := par[2].(context.Context) for{ select { case <-res.Done(): log.Println("停止了!") return default: log.Println("只执行一次") time.Sleep(time.Second) } } return } func callback(par ...interface{})(err error ) { log.Println("回调参数",par[0],par[1]) time.Sleep(6*time.Second) return }
- 1
- 粉丝: 6613
- 资源: 3166
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助