Maison >développement back-end >Golang >Exécuter un planificateur horaire à l'aide de gocron

Exécuter un planificateur horaire à l'aide de gocron

王林
王林avant
2024-02-10 15:20:21850parcourir

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

L'éditeur de PHP Apple vous présente gocron, qui est un puissant planificateur qui vous permet d'exécuter des tâches toutes les heures. Il s'agit d'un outil simple et facile à utiliser qui peut mettre en œuvre la planification de tâches planifiées sans écrire de code fastidieux. En utilisant gocron, vous pouvez facilement configurer des tâches à exécuter toutes les heures, qu'il s'agisse de sauvegarde de données, de nettoyage de journaux ou d'autres tâches planifiées importantes, elles peuvent être exécutées de manière précise et fiable. gocron fournit également une interface graphique conviviale, vous permettant de gérer et de surveiller facilement vos tâches planifiées. Que vous soyez un développeur individuel ou un administrateur d'entreprise, gocron est un outil indispensable pour vous.

Contenu de la question

Comment exécuter une fonction à des minutes spécifiques toutes les heures en utilisant gocron ?

J'ai essayé deux codes, l'un est sale et l'autre ne fonctionne pas.

Code sale :

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

Le code ne fonctionne pas :

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

Solution de contournement

Utilisez .every(1).hour() ,然后将其与 .startat() 链接,并使用任何将分钟设置为 30time.time objet pour remplir les paramètres.

De cette façon, le planificateur fonctionnera quelques minutes toutes les heures 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()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer