<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>

          推薦 Go 語言中的兩個(gè)定時(shí)任務(wù)庫

          共 1211字,需瀏覽 3分鐘

           ·

          2021-11-27 04:14

          今天給大家介紹兩個(gè) Go 語言可以用來做定時(shí)任務(wù)的庫,直接上 demo 就好啦。

          ?1.?robfig/cron

          執(zhí)行如下命令進(jìn)行安裝:

          go?get?-u?github.com/robfig/cron

          每分鐘執(zhí)行一次:

          package?main

          import?(
          ????"log"

          ????"github.com/robfig/cron"
          )

          func?main()?{
          ????i?:=?0
          ????c?:=?cron.New()
          ????spec?:=?"0?*/1?*?*?*?*"
          ????c.AddFunc(spec,?func()?{
          ????????i++
          ????????log.Println("execute?per?second",?i)
          ????})
          ????c.Start()
          ????select?{}
          }

          其中注意select的用法:
          golang 的 select 的功能和 select, poll, epoll 相似, 就是監(jiān)聽 IO 操作,當(dāng) IO 操作發(fā)生時(shí),觸發(fā)相應(yīng)的動(dòng)作。

          每天上午9點(diǎn)到12點(diǎn)的第2和第10分鐘執(zhí)行:

          package?main

          import?(
          ????"fmt"

          ????"github.com/robfig/cron"
          )

          func?main()?{
          ????spec?:=?"2,10?9-12?*?*?*"?//?每天上午9點(diǎn)到12點(diǎn)的第2和第10分鐘執(zhí)行
          ????c?:=?cron.New()
          ????c.AddFunc(spec,?myFunc)
          ????c.Start()
          ????select?{}
          }

          func?myFunc()?{
          ????fmt.Println("execute")
          }

          2.??jasonlvhit/gocron

          執(zhí)行如下命令進(jìn)行安裝:

          go?get?-u?github.com/jasonlvhit/gocron

          每隔1秒執(zhí)行一個(gè)任務(wù),每隔4秒執(zhí)行另一個(gè)任務(wù):

          package?main

          import?(
          ????"fmt"
          ????"time"

          ????"github.com/jasonlvhit/gocron"
          )

          func?task()?{
          ????fmt.Println("I?am?runnning?task.",?time.Now())
          }
          func?superWang()?{
          ????fmt.Println("I?am?runnning?superWang.",?time.Now())
          }

          func?main()?{
          ????s?:=?gocron.NewScheduler()
          ????s.Every(1).Seconds().Do(task)
          ????s.Every(4).Seconds().Do(superWang)

          ????sc?:=?s.Start()?//?keep?the?channel
          ????go?test(s,?sc)??//?wait
          ????<-sc????????????//?it?will?happens?if?the?channel?is?closed
          }

          func?test(s?*gocron.Scheduler,?sc?chan?bool)?{
          ????time.Sleep(8?*?time.Second)
          ????s.Remove(task)?//remove?task
          ????time.Sleep(8?*?time.Second)
          ????s.Clear()
          ????fmt.Println("All?task?removed")
          ????close(sc)?//?close?the?channel
          }



          ? ?

          a2d47f76e651399882b07adbdfa1ffaf.webp
          喜歡明哥文章的同學(xué)歡迎長按下圖訂閱!

          ???

          瀏覽 99
          點(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>
                  操逼操123首页 | 日本一级A片亲子乱 | 色色影院导航 | 高潮喷水在线 | 免费A∨在线观看 |