golang-cron定時任務


golang-cron定時任務

cron.New創建一個定時器管理器
c.AddFunc添加一個定時任務,第一個參數是cron時間表達式,第二個參數是要觸發執行的函數
go c.Start()新啟一個協程,運行定時任務
c.Stop是等待停止信號結束任務

import(
    "github.com/robfig/cron/v3"
)

var Parser cron.Parser

func init() {
	Parser = cron.NewParser(
		cron.Second | cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow,
	)

    c := cron.New(cron.WithParser(Parser))

    //添加定時任務 schedule 為cron表達式
    schedule := "0 30 * * * *"
    c.AddFunc(schedule, func() {
         // 處理業務
    }

    	c.Start()
	defer c.Stop()

	select {}
}

Beego任務實現

1.)獲取beego task

go get github.com/beego/beego/v2/task

2.)代碼示例

tk1 := task.NewTask("tk1", "0 12 * * * *", func(ctx context.Context) error {
	fmt.Println("tk1")
	return nil
})

task.AddTask("tk1", tk1)
task.StartTask()
defer task.StopTask()

相關鏈接

https://github.com/robfig/cron
https://pkg.go.dev/github.com/robfig/cron
https://github.com/ouqiang/gocron
https://www.lsdcloud.com/go/middleware/go-timer.html#_6-2-成員方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM