Maison > développement back-end > Golang > le corps du texte

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

王林
Libérer: 2024-02-10 15:20:21
avant
846 Les gens l'ont consulté

使用 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()
Copier après la connexion

Le code ne fonctionne pas :

_, err = s.Every(1).Hour().Minute(30).Do(runHourlyScheduler)
Copier après la connexion

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()
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal