您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關go中怎么使用cron 定時任務模塊,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
github.com/robfig/cron/v3
定時任務測試 沒有封裝 日志模塊是我封裝的,可以改掉
pkg/crontab/init.go
package crontab import ( "time" "gitee.com/RandolphCYG/akita/pkg/log" "github.com/robfig/cron/v3" ) /* TODO 可配置性,將頁面上配置的定時任務緩存到 redis 然后系統啟動刷一遍所有的定時任務 */ // Cron 定時任務 var Cron *cron.Cron // Init 初始化定時任務 func Init() { log.Log().Info("初始化定時任務...") // 先開啟秒級,寫不標準crontab命令測試 Cron := cron.New(cron.WithSeconds()) spec1 := "*/3 * * * * *" Cron.AddFunc(spec1, task1) spec2 := "*/5 * * * * *" Cron.AddFunc(spec2, task2) defer Cron.Stop() go Cron.Start() // select { // case <-Cron.Stop().Done(): // return // } time.Sleep(time.Second * 5) } // Reload 重新啟動定時任務 func Reload() { if Cron != nil { Cron.Stop() log.Log().Warning("停止定時任務...") } Init() } // 測試秒級別定時任務 回頭改成不支持秒級別的 func task1() { log.Log().Debug("每隔3秒執行一次") } func task2() { log.Log().Debug("每隔5秒執行") }
pkg/crontab/crontab_test.go
package crontab import ( "testing" ) func TestCrontab(t *testing.T) { Init() Reload() }
以上就是go中怎么使用cron 定時任務模塊,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。