您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Golang定時(shí)任務(wù)庫gocron有哪些優(yōu)點(diǎn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Golang定時(shí)任務(wù)庫gocron有哪些優(yōu)點(diǎn)”吧!
TSINGEEE青犀視頻內(nèi)視頻平臺都已經(jīng)具備成熟完善的體系,不僅具備穩(wěn)定可靠的流媒體視頻結(jié)構(gòu)化智能分析平臺,還有播放器及推流等組件。
在開發(fā)EasyDSS、EasyRTC、EasyNVR、EasyCVR等項(xiàng)目時(shí),經(jīng)常會有定時(shí)幾分鐘或者定時(shí)幾秒執(zhí)行一次任務(wù)的操作。如果使用Go官方提供的定時(shí)器方式,使用起來比較難用,且不方便管理任務(wù)。因此使用 github 中開源的定時(shí)任務(wù)庫進(jìn)行定時(shí)任務(wù)操作。
gocron 的最開始倉庫地址為以下的地址:
https://github.com/jasonlvhit/gocron
目前不少人使用的是該倉庫的 gocron,但是 2020 年時(shí),已經(jīng)聯(lián)系不上了該倉庫的擁有者,因此修改了倉庫地址為:
https://github.com/go-co-op/gocron
該倉庫修改的 gocron 更方便使用,因此主要介紹該倉庫的使用。
func ExampleJob_LastRun() { s := gocron.NewScheduler(time.UTC) job, _ := s.Every(1).Second().Do(task) s.StartAsync() fmt.Println("Last run:", job.LastRun()) }
以上代碼首先使用 gocron 的 NewScheduler 方法創(chuàng)建一個(gè)任務(wù)隊(duì)列,然后就是定時(shí)任務(wù)的執(zhí)行。
其中 s.StartAsync() 如果該方法運(yùn)行,會立刻運(yùn)行執(zhí)行一次 task 函數(shù),如果不運(yùn)行該代碼,則會 1s 后才運(yùn)行一次 task 任務(wù)。
該庫還提供了其他很好用的方法:
_, _ = s.Every(1).Second().Do(task) _, _ = s.Every(1).Minute().Do(task) _, _ = s.Every(1).Month(1).Do(task) _, _ = s.Every(1).Day().At("10:00").Do(task) _, _ := s.Every(1).Day().Tuesday().Do(task) _, _ = s.Every(1).Week().Weekday(time.Monday).Do(task)
每周、每天以及每周的周幾、每天的幾點(diǎn)該庫都提供了對應(yīng)的方法,非常方便實(shí)用。
到此,相信大家對“Golang定時(shí)任務(wù)庫gocron有哪些優(yōu)點(diǎn)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。