Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Jalankan penjadual setiap jam menggunakan gocron

Jalankan penjadual setiap jam menggunakan gocron

王林
王林ke hadapan
2024-02-10 15:20:21808semak imbas

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

Editor PHP Apple memperkenalkan anda kepada gocron, iaitu penjadual berkuasa yang membolehkan anda menjalankan tugas setiap jam. Ia adalah alat yang ringkas dan mudah digunakan yang boleh melaksanakan penjadualan tugas berjadual tanpa menulis kod yang menyusahkan. Menggunakan gocron, anda boleh menyediakan tugasan untuk dilaksanakan dengan mudah setiap jam Sama ada sandaran data, pembersihan log atau tugas berjadual penting yang lain, tugasan tersebut boleh dilaksanakan dengan tepat dan boleh dipercayai. gocron juga menyediakan antara muka grafik yang mesra, membolehkan anda mengurus dan memantau tugas yang dijadualkan dengan mudah. Sama ada anda seorang pembangun individu atau pentadbir perusahaan, gocron ialah alat yang sangat diperlukan untuk anda.

Kandungan soalan

Bagaimana untuk menjalankan fungsi pada minit tertentu setiap jam menggunakan gocron?

Saya cuba dua kod, satu kotor dan satu lagi tidak berfungsi.

Kod kotor:

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

Kod tidak berfungsi:

_, err = s.Every(1).Hour().Minute(30).Do(runHourlyScheduler)

Penyelesaian

Gunakan .every(1).hour() ,然后将其与 .startat() 链接,并使用任何将分钟设置为 30time.time objek untuk mengisi parameter.

Dengan cara ini penjadual akan berjalan selama beberapa minit setiap jam 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()

Atas ialah kandungan terperinci Jalankan penjadual setiap jam menggunakan gocron. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam