首頁 > 後端開發 > Golang > 主體

使用 gocron 運行每小時調度程序

王林
發布: 2024-02-10 15:20:21
轉載
807 人瀏覽過

使用 gocron 运行每小时调度程序

php小編蘋果為你介紹gocron,這是一個強大的調度程序,可以讓你在每小時運行任務。它是一個簡單易用的工具,無需編寫繁瑣的程式碼即可實現定時任務調度。使用gocron,你可以輕鬆設定每小時執行的任務,無論是資料備份、日誌清理或其他重要的定時任務,都能得到準確可靠的執行。 gocron還提供了友善的圖形化介面,讓你可以方便地管理和監控你的定時任務。無論你是個人開發者還是企業管理員,gocron都是你不可或缺的工具。

問題內容

如何使用 gocron 每小時特定分鐘運行函數?

我嘗試了兩種程式碼,一種很髒,另一種不起作用。

髒程式碼:

loc, _ := time.loadlocation("asia/seoul")
    s := gocron.newscheduler(loc)

    _, err = s.every(1).day().at("0:30").do(schduler)
    _, err = s.every(1).day().at("1:30").do(schduler)
    _, err = s.every(1).day().at("2:30").do(schduler)
    _, err = s.every(1).day().at("3:30").do(schduler)
    _, err = s.every(1).day().at("4:30").do(schduler)
    _, err = s.every(1).day().at("5:30").do(schduler)
    _, err = s.every(1).day().at("6:30").do(schduler)
    _, err = s.every(1).day().at("7:30").do(schduler)
    _, err = s.every(1).day().at("8:30").do(schduler)
    _, err = s.every(1).day().at("9:30").do(schduler)
    _, err = s.every(1).day().at("10:30").do(schduler)
    _, err = s.every(1).day().at("11:30").do(schduler)
    _, err = s.every(1).day().at("12:30").do(schduler)
    _, err = s.every(1).day().at("13:30").do(schduler)
    _, err = s.every(1).day().at("14:30").do(schduler)
    _, err = s.every(1).day().at("15:30").do(schduler)
    _, err = s.every(1).day().at("16:30").do(schduler)
    _, err = s.every(1).day().at("17:30").do(schduler)
    _, err = s.every(1).day().at("18:30").do(schduler)
    _, err = s.every(1).day().at("19:30").do(schduler)
    _, err = s.every(1).day().at("20:30").do(schduler)
    _, err = s.every(1).day().at("21:30").do(schduler)
    _, err = s.every(1).day().at("22:30").do(schduler)
    _, err = s.every(1).day().at("23:30").do(schduler)
    if err != nil {
        fmt.println("error scheduling task:", err)
        return
    }
    s.startasync()
登入後複製

不工作的程式碼:

_, err = s.Every(1).Hour().Minute(30).Do(runHourlyScheduler)
登入後複製

解決方法

使用.every(1).hour() ,然後將其與.startat() 鏈接,並使用任何將分鐘設定為30time.time 物件填入參數。

這樣,調度程式將每小時運行幾分鐘 30

loc, _ := time.LoadLocation("Asia/Seoul")
s := gocron.NewScheduler(loc)

// construct start at in minute 30
now := time.Now()
nextSchedule := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 30, 0, 0, now.Location())

_, err := s.Every(1).Hour().StartAt(nextSchedule).Do(schduler)
if err != nil {
    fmt.Println("Error scheduling task:", err)
    return
}

s.StartAsync()
登入後複製

以上是使用 gocron 運行每小時調度程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!