Maison >développement back-end >Golang >Comment puis-je effectuer des tâches répétitives en arrière-plan à intervalles réguliers en Go ?

Comment puis-je effectuer des tâches répétitives en arrière-plan à intervalles réguliers en Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-26 12:08:13165parcourir

How Can I Perform Repetitive Background Tasks at Intervals in Go?

Effectuer des tâches répétitives en arrière-plan dans Go à intervalles réguliers

En Java, la méthode Timer.schedule offre un moyen pratique d'exécuter des tâches périodiques en arrière-plan. Cela soulève la question : existe-t-il une approche analogue disponible dans Go ?

Une solution possible consiste à utiliser une goroutine et time.sleep(), mais cela peut s'avérer complexe. Heureusement, Go propose une solution plus élégante : time.NewTicker.

time.NewTicker crée un canal qui envoie en continu un message périodique, offrant un moyen simple et efficace de planifier des tâches répétitives. Pour employer du temps.NewTicker :

ticker := time.NewTicker(5 * time.Second)
quit := make(chan struct{})

go func() {
    for {
        select {
        case <- ticker.C:
            // Perform the desired task
        case <- quit:
            ticker.Stop()
            return
        }
    }
}()

Pour licencier le travailleur responsable de l'exécution des tâches, fermez simplement le canal de sortie :

close(quit)

Cette approche offre une méthode propre et simple pour effectuer tâches répétitives en arrière-plan à intervalles réguliers dans Go.

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:
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