Site icon marclabs.com

Définir des tâches cron avec Laravel

Une commande Cron est une commande Unix pour la planification des tâches à exécuter dans un délai spécifique et/ou un intervalle spécifique. Par exemple, nous pouvons planifier des tâches cron dans le serveur qui exécute des scripts qui envoient des rapports quotidiens / hebdomadaires à partir de notre site Web. Principalement, nous utilisons les tâches cron pour nettoyer les bases de données, envoyer les emails, exécuter des tâches consommant beaucoup de temps … .etc. Si je veux supprimer certains fichiers de ma base de données vieux d’un mois, je peux simplement le faire en utilisant une tâche cron. Le travail de Cron ne fonctionnera pas avec les machines ou les serveurs basés sur Windows, il ne fonctionne que sur des machines basées sur unix.Cron Tab

Cron a un fichier de configuration appelé Crontab qui est utilisé pour gérer l’ordonnancement. Ce crontab se compose de tâches cron différents et chaque tâche cron est associée à une tâche spécifique. Cron Job se compose principalement de deux parties, d’une expression Cron et d’une commande shell à exécuter.

Le format d’une tâche cron et la suivante : * * * * * /commande_a_executer

Chacune des étoiles a bien un sens : (De la gauche vers la droite bien sûr)

  1. Première étoile : Minutes (0-59)
  2. Deuxième étoile : Heures (0-23)
  3. Troisième étoile : Jour du mois (1-31)
  4. Quatrième étoile : Mois (1-12)
  5. Cinquième étoile : Jour de la semaine (0-6, le 0 correspondant au Dimanche)

Pour ouvrir le fichier crontab :

crontab -e

Exemples de tâches cron

En ce qui concerne Laravel

Laravel

Normalement pour la planification des tâches, vous devez êtes connecté (SSH par exemple) sur votre serveur pour ajouter les entrées Cron. La fonction de planificateur de commandes de Laravel vous permet de définir facilement et expressément votre programme de commandes dans Laravel lui-même, et seule une seule entrée Cron est nécessaire sur votre serveur pour exécuter le planificateur de tâches laravel à chaque minute.

Le programme de tâches de Laravel est défini dans la méthode de l’horaire à l’intérieur du fichier app/Console /Kernel.php . Nous pouvons définir autant de tâches dans cette méthode. Voici la seule entrée de Cron que vous devez ajouter à votre serveur, ce qui appellera chaque fois le planificateur de commandes Laravel.

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

Cette tâche cron va initier le Scheduler de Laravel pour l’exécution des tâches à l’intérieur de la méthode de planification.

protected function schedule(Schedule $schedule){}

Planification des tâches cron dans Laravel

Pour planifier les commandes, nous utilisons le planificateur de tâches de Laravel. Les tâches ont été définies dans la méthode de planification de la classe app/Console/Kernel.php . En utilisant la méthode schedule , nous pouvons ajouter autant de commandes que nous voulons. Il existe différentes fréquences de programmation que nous pouvons appliquer sur les commandes en fonction des besoins. Quelques exemples sont listés ci-dessous.

 Listes des méthodes

Les différents types d’horaires que nous pouvons assigner à nos tâches sont,

Le planificateur de commandes Laravel nous aide à définir de façon expressive le programme de commandes dans Laravel avec une seule entrée Cron sur votre serveur.

Sources :

Quitter la version mobile