<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【GoCN酷Go推薦】gocron 定時(shí)任務(wù)管理器

          共 2571字,需瀏覽 6分鐘

           ·

          2021-05-24 16:15

          簡(jiǎn)介

          很多時(shí)候,項(xiàng)目中需要用到定時(shí)任務(wù),或者周期任務(wù)。首先我們想到了 crontab,但是 crontab 使用會(huì)和項(xiàng)目分離,不那么方便。那怎么辦呢?

          這里,推薦使用gocron 這個(gè)庫(kù),可以非常方便的設(shè)置定時(shí)任務(wù),無(wú)論年、月、日、時(shí)、分、秒的定時(shí)設(shè)置。同時(shí),它還提供 crontab 字符串格式的設(shè)置功能。

          快速使用

          步驟如下:

          安裝包"github.com/go-co-op/gocron" 引入包,參照例子直接使用

          1.簡(jiǎn)單使用

          1. 首先,初始化 s 對(duì)象;
          2. 然后,直接配置定時(shí)任務(wù),任務(wù)添加函數(shù)名 + 參數(shù);
          3. 最后,block 當(dāng)前進(jìn)程,觀察任務(wù)執(zhí)行。
          package main

          import (
              "fmt"
              "time"

              "github.com/go-co-op/gocron"
          )

          func task(s string){
              fmt.Printf("I'm running, about %s. \n", s)
          }

          func main() {
              s := gocron.NewScheduler(time.UTC)
              s.Every(1).Seconds().Do(task, "1s")
              s.StartBlocking()
          }

          輸出如下:

          I'm running, about 1s. 
          I'
          m running, about 1s. 
          I'm running, about 1s. 

          2.更多參考設(shè)置

          針對(duì)定時(shí)任務(wù),可以設(shè)置 時(shí)、分、秒、天、周、幾點(diǎn),也可以 crontab 字符串的格式設(shè)置。

          package main

          import (
              "fmt"
              "time"

              "github.com/go-co-op/gocron"
          )

          func task(){
              fmt.Printf("I'm running.\n")
          }

          func main() {
              s := gocron.NewScheduler(time.UTC)

              // 每隔多久
              s.Every(1).Seconds().Do(task)
              s.Every(1).Minutes().Do(task)
              s.Every(1).Hours().Do(task)
              s.Every(1).Days().Do(task)
              s.Every(1).Weeks().Do(task)

              // 每周幾
              s.Every(1).Monday().Do(task)
              s.Every(1).Thursday().Do(task)

              // 每天固定時(shí)間
              s.Every(1).Days().At("10:30").Do(task)
              s.Every(1).Monday().At("18:30").Do(task)
              s.Every(1).Tuesday().At("18:30:59").Do(task)

              // 設(shè)置crontab字符串格式
              s.Cron("*/1 * * * *").Do(task)

              s.StartBlocking()
          }

          總結(jié)


          gocron庫(kù)簡(jiǎn)單方便,支持方式多樣,更多可自行挖掘一下;總之,當(dāng)需要定時(shí)任務(wù)時(shí),它會(huì)給予你非常大的幫助。


          參考資料



          • https://github.com/go-co-op/gocron


          還想了解更多嗎?

          更多請(qǐng)查看:https://github.com/go-co-op/gocron

          歡迎加入我們GOLANG中國(guó)社區(qū):https://gocn.vip/


          《酷Go推薦》招募:


          各位Gopher同學(xué),最近我們社區(qū)打算推出一個(gè)類(lèi)似GoCN每日新聞的新欄目《酷Go推薦》,主要是每周推薦一個(gè)庫(kù)或者好的項(xiàng)目,然后寫(xiě)一點(diǎn)這個(gè)庫(kù)使用方法或者優(yōu)點(diǎn)之類(lèi)的,這樣可以真正的幫助到大家能夠?qū)W習(xí)到

          新的庫(kù),并且知道怎么用。


          大概規(guī)則和每日新聞?lì)愃疲绻麍?bào)名人多的話(huà)每個(gè)人一個(gè)月輪到一次,歡迎大家報(bào)名!(報(bào)名地址:https://wj.qq.com/s2/7734329/3f51)


          掃碼也可以加入 GoCN 的大家族喲~


          瀏覽 70
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色av影视 | 美女被插网站 | 成人视频网站18 | 黄色电影国产 | 国产黄色电影免费观看 |