Browse Source

增加定时任务

master
VIVIMAN 3 years ago
parent
commit
ea96d78d9e
  1. 20
      golang_learn/data_func/go_to_crontab/demo01/main.go
  2. 34
      golang_learn/data_func/go_to_crontab/demo02/main.go
  3. 17
      golang_learn/data_func/go_to_crontab/demo03/main.go
  4. 1
      golang_learn/go.mod
  5. 2
      golang_learn/go.sum

20
golang_learn/data_func/go_to_crontab/demo01/main.go

@ -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 {}
}

34
golang_learn/data_func/go_to_crontab/demo02/main.go

@ -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 {}
}

17
golang_learn/data_func/go_to_crontab/demo03/main.go

@ -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执行一次")
}

1
golang_learn/go.mod

@ -30,6 +30,7 @@ require (
github.com/mzky/zip v0.0.0-20210817031838-1b692015aed2 github.com/mzky/zip v0.0.0-20210817031838-1b692015aed2
github.com/pingcap/log v0.0.0-20211215031037-e024ba4eb0ee github.com/pingcap/log v0.0.0-20211215031037-e024ba4eb0ee
github.com/riftbit/go-systray v1.0.2 github.com/riftbit/go-systray v1.0.2
github.com/robfig/cron/v3 v3.0.1
github.com/russross/blackfriday v1.6.0 github.com/russross/blackfriday v1.6.0
github.com/shirou/gopsutil v2.20.4+incompatible github.com/shirou/gopsutil v2.20.4+incompatible
github.com/spf13/viper v1.8.1 github.com/spf13/viper v1.8.1

2
golang_learn/go.sum

@ -299,6 +299,8 @@ github.com/richardlehane/msoleps v1.0.1 h1:RfrALnSNXzmXLbGct/P2b4xkFz4e8Gmj/0Vj9
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
github.com/riftbit/go-systray v1.0.2 h1:8cT4UEREfN3NxpErxHC/7G8cR/t/hAiO/nZng5pmSAQ= github.com/riftbit/go-systray v1.0.2 h1:8cT4UEREfN3NxpErxHC/7G8cR/t/hAiO/nZng5pmSAQ=
github.com/riftbit/go-systray v1.0.2/go.mod h1:4Gw5HqutBhqXW3sRq41ggHZZqC1k/KOU4dix6G6frj0= github.com/riftbit/go-systray v1.0.2/go.mod h1:4Gw5HqutBhqXW3sRq41ggHZZqC1k/KOU4dix6G6frj0=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=

Loading…
Cancel
Save