Jalankan penjadual setiap jam menggunakan gocron

王林
Lepaskan: 2024-02-10 15:20:21
ke hadapan
846 orang telah melayarinya

使用 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()
Salin selepas log masuk

Kod tidak berfungsi:

_, err = s.Every(1).Hour().Minute(30).Do(runHourlyScheduler)
Salin selepas log masuk

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()
Salin selepas log masuk

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

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan