forked from go/golangs_learn
5 changed files with 74 additions and 0 deletions
@ -0,0 +1,20 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"github.com/robfig/cron/v3" |
||||
|
) |
||||
|
|
||||
|
func main() { |
||||
|
crontab := cron.New() |
||||
|
task := func() { |
||||
|
fmt.Println("hello world") |
||||
|
} |
||||
|
// 添加定时任务, * * * * * 是 crontab,表示每分钟执行一次
|
||||
|
_, _ = crontab.AddFunc("* * * * *", task) |
||||
|
// 启动定时器
|
||||
|
crontab.Start() |
||||
|
// 定时任务是另起协程执行的,这里使用 select 简答阻塞.实际开发中需要
|
||||
|
// 根据实际情况进行控制
|
||||
|
select {} |
||||
|
} |
@ -0,0 +1,34 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"log" |
||||
|
|
||||
|
"github.com/robfig/cron/v3" |
||||
|
) |
||||
|
|
||||
|
type Hello struct { |
||||
|
Str string |
||||
|
} |
||||
|
|
||||
|
func (h Hello) Run() { |
||||
|
log.Println(h.Str) |
||||
|
} |
||||
|
|
||||
|
func main() { |
||||
|
log.Println("Starting...") |
||||
|
|
||||
|
c := cron.New() |
||||
|
h := Hello{"I Love You!"} |
||||
|
// 添加定时任务
|
||||
|
_, _ = c.AddJob("*/2 * * * * * ", h) |
||||
|
// 添加定时任务
|
||||
|
_, _ = c.AddFunc("*/5 * * * * * ", func() { |
||||
|
log.Println("hello word") |
||||
|
}) |
||||
|
|
||||
|
// 其中任务
|
||||
|
c.Start() |
||||
|
// 关闭任务
|
||||
|
defer c.Stop() |
||||
|
select {} |
||||
|
} |
@ -0,0 +1,17 @@ |
|||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"github.com/robfig/cron/v3" |
||||
|
"log" |
||||
|
) |
||||
|
|
||||
|
func main() { |
||||
|
c := cron.New() |
||||
|
_, _ = c.AddFunc("@every 5s", timer) |
||||
|
c.Start() |
||||
|
select {} |
||||
|
} |
||||
|
|
||||
|
func timer() { |
||||
|
log.Println("每5s执行一次") |
||||
|
} |
Loading…
Reference in new issue