Maison  >  Article  >  cadre php  >  Comment exécuter des tâches planifiées dans Laravel

Comment exécuter des tâches planifiées dans Laravel

PHPz
PHPzoriginal
2023-04-14 09:16:443784parcourir

Laravel est un framework PHP populaire qui fournit une multitude d'outils et de fonctions, dont les tâches planifiées. Dans cet article, nous apprendrons comment exécuter des tâches planifiées dans Laravel.

Tout d'abord, Laravel fournit un outil appelé "scheduler" qui nous permet de définir et d'exécuter facilement des tâches planifiées. Dans Laravel, le planificateur utilise le service cron du système d'exploitation, vous devez donc vous assurer que le service cron a été démarré sur le serveur cible.

Ensuite, nous expliquerons étape par étape comment implémenter des tâches planifiées dans Laravel :

La première étape consiste à créer une classe de tâches planifiées

Dans Laravel, nous pouvons créer une classe de tâches planifiées personnalisée en héritant de la classe IlluminateConsoleSchedulingSchedule. Cette classe doit contenir une méthode nommée "handle" pour définir la logique d'exécution de la tâche planifiée. Par exemple, nous créons une classe de tâches nommée « SendEmail » avec le code suivant :

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class SendEmail extends Command
{
    protected $signature = &#39;email:send&#39;;

    protected $description = &#39;Send an email to users&#39;;

    public function handle()
    {
        // 定时任务执行的逻辑
    }
}

Dans l'exemple ci-dessus, nous définissons une classe nommée « SendEmail », qui hérite de la classe Command de Laravel. Dans cette classe, nous définissons la commande "email:send" qui déclenche la tâche, ainsi que la description de la tâche qui s'affiche lorsque la commande "php artisan list" est exécutée.

La deuxième étape consiste à enregistrer les tâches planifiées

Dans Laravel, nous pouvons utiliser le fichier Kernel.php pour enregistrer toutes les tâches planifiées. Ce fichier se trouve dans le répertoire "app/Console". Dans ce fichier, nous pouvons utiliser la méthode "schedule" pour définir toutes les tâches. Par exemple, nous voulons exécuter la tâche SendEmail que nous venons de créer toutes les minutes. Le code est le suivant :

protected function schedule(Schedule $schedule)
{
    $schedule->command('email:send')->everyMinute();
}

Dans l'exemple ci-dessus, nous utilisons la méthode "everyMinute" pour définir la tâche SendEmail à exécuter toutes les minutes.

La troisième étape, démarrez la tâche planifiée

Dans Laravel, nous pouvons démarrer le planificateur en exécutant la commande suivante :

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Ensuite, nous devons ajouter la commande ci-dessus à la table cron pour nous assurer que le planificateur s'exécute à le délai spécifié s'écoule dans. Par exemple, si nous définissons la tâche SendEmail pour qu'elle soit exécutée toutes les minutes, nous devons alors ajouter la commande suivante à la table cron :

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Dans l'exemple ci-dessus, " *" signifie l'exécuter une fois toutes les minutes. .

Maintenant, nous avons implémenté avec succès les tâches planifiées dans Laravel. Que ce soit dans un environnement de production ou un environnement de développement, la fonction de tâches planifiées de Laravel peut nous aider à automatiser certaines tâches, nous permettant ainsi d'économiser du temps et de l'énergie.

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