Golang Cron

Golang Cron
Crontab ou Cron for Short est un utilitaire extrêmement utile trouvé dans les systèmes d'exploitation de type UNIX. Il vous permet de planifier des commandes ou des tâches pour s'exécuter à un moment précis. En règle générale, Cron est très utile lors de l'exécution de tâches répétitives telles que des sauvegardes, la suppression des fichiers, la collecte de journaux, la maintenance automatisée du système, et plus encore.

Une tâche planifiée, également connue sous le nom d'un travail cron, utilise des formats de temps très pour déterminer quand exécuter. Par exemple, vous pouvez créer un simple cronjob qui s'exécute lorsque le système redémarre.

Pour en savoir plus sur la façon d'utiliser l'utilitaire Crontab, consultez ce tutoriel. Dans ce guide, cependant, nous discuterons de la façon dont nous pouvons implémenter des tâches Cron en utilisant la langue Go.

Package de Golang Cron

Pour créer et exécuter des tâches cron à l'aide de Golang, nous devons installer et importer le package GO Cron.

Commencez par créer un répertoire de travail pour stocker votre code Golang.

Mkdir Cons
CD Cons

Ensuite, exécutez la commande ci-dessous pour installer le package:

Allez chercher Github.com / robfig / cron / v3 @ v3.0.0

Une fois installé, créez un fichier Go pour stocker votre code

toucher la main.aller

Ouvrez le principal.Allez fichier avec votre éditeur de texte et importez le package à l'aide de la ligne ci-dessous:

Importer "Github.com / robfig / cron / v3 "

Golang crée un objet cron

La première étape consiste à créer un objet cron en utilisant le cron.Méthode new (). Vous pouvez ensuite utiliser ces tâches de gestion d'objet et de planification.

cron: = cron.Nouveau()

Ce qui précède devrait renvoyer un nouveau coureur de travail Cron avec le fuseau horaire défini. Si aucun fuseau horaire n'est spécifié, la fonction utilisera le fuseau horaire local.

Golang ajouter la func

L'étape suivante consiste à appeler la méthode addfunc sur l'objet cron. Cela nous permet d'ajouter un temps au gestionnaire d'emploi. La syntaxe de fonction est comme indiqué:

Func (C * Cron) Addfunc (Spec String, CMD Func ()) Erreur

Il prend la durée sous laquelle la fonction spécifiée s'exécutera. Vous pouvez définir cette valeur sur chaque fois.Format parseduration (). Par exemple, pour définir une fonction pour exécuter chaque minute, nous pouvons spécifier le paramètre comme: @Every 1M.

Le deuxième paramètre est la fonction à exécuter.

Un exemple de code est comme indiqué ci-dessous:

package principal
importer (
"FMT"
"Github.com / robfig / cron / v3 "
)
funcmain ()
cron: = cron.Nouveau()
cron.Addfunc ("@ chaque 1 m", func ()
fmt.Println ("Salut chaque minute!")
)

Dans cet exemple, nous définissons une fonction qui imprime «salut chaque minute», chaque minute.

L'étape suivante consiste à démarrer le planificateur cron. Pour cela, nous pouvons utiliser le cron.Méthode start (). La fonction prendra le planificateur et l'exécutera dans son propre go-routine.

cron.Commencer()
temps.Temps de sommeil.Minute * 5)

Le code ci-dessus démarre le planificateur cron en utilisant la méthode start (). Nous incluons également le temps.Méthode sleep () avec un paramètre de 5 minutes. En effet. La méthode de sommeil empêche la routine GO de quitter.

Si nous exécutons le code ci-dessus, nous devons obtenir une sortie comme:

$ va run main.aller
Salut chaque minute!
Salut chaque minute!
Salut chaque minute!
… .

Formats d'expression de Golang

Vous pouvez utiliser divers formats d'expression pour définir un ensemble de fois et de durées dans lesquels une tâche s'exécutera.

Le package Cron prend en charge les expressions suivantes:

  1. Un astérisque montre que l'expression correspond à toutes les valeurs du champ.
  2. Une slash avant décrit l'incrément des gammes.
  3. La virgule sépare une liste d'éléments.
  4. Hyphen définit un ensemble de gammes.

Vous pouvez également utiliser les formats prédéfinis comme indiqué:

Fermeture

C'était un tutoriel d'introduction sur la création et la planification des tâches à l'aide de Cron dans la langue Go. Vérifiez les documents pour plus.