Maison >cadre php >Laravel >Comment implémenter la fonction d'appel de méthode planifiée dans Laravel

Comment implémenter la fonction d'appel de méthode planifiée dans Laravel

PHPz
PHPzoriginal
2023-04-03 18:53:19715parcourir

Laravel est un framework de développement Web PHP populaire qui fournit de nombreuses fonctionnalités et outils pratiques pour développer rapidement des applications Web. Laravel a également pour fonction d'effectuer des tâches planifiées, ce qui permet aux développeurs d'automatiser l'exécution de certaines tâches périodiques. Cette fonction est appelée « Task Scheduling », qui est la planification des tâches.

La planification des tâches fournit un moyen simple mais puissant de gérer les tâches exécutées périodiquement dans Laravel. Laravel fournit un planificateur qui peut appeler automatiquement une méthode PHP spécifiée en fonction d'une heure planifiée. Cette méthode peut consister à appeler une méthode du contrôleur ou à exécuter une commande Artisan. Cela permet aux développeurs de planifier facilement des tâches sans avoir à se soucier du moment où les tâches sont exécutées ou de savoir si elles sont exécutées le nombre correct de fois.

La fonction de planification des tâches de Laravel est très simple à utiliser. Il vous suffit de définir les tâches qui doivent être exécutées dans la méthode de planification de la classe Kernel. Voici un exemple simple :

// app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        // 这是要运行的任务逻辑
    })->dailyAt('02:00');
}

Dans le code ci-dessus, le planificateur de tâches exécutera une fonction anonyme à 2 heures du matin tous les jours. Dans cette fonction anonyme, vous pouvez écrire la logique de tâche que vous devez exécuter, et bien sûr, vous pouvez également appeler des méthodes de contrôleur, des commandes Artisan, etc.

En plus de la méthode dailyAt, Laravel propose également de nombreuses autres méthodes de planification, telles que horaire, twoDaily, hebdomadaire, mensuelle, etc. Ces méthodes vous permettent de définir plus précisément la fréquence d'exécution des tâches.

Dans le même temps, la planification des tâches de Laravel prend également en charge la planification basée sur les expressions Cron, ce qui signifie que vous pouvez avoir un contrôle plus granulaire sur le temps d'exécution spécifique du planificateur de tâches. Voici un exemple d'utilisation de Cron pour planifier des tâches :

// app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
    $schedule->command('my:task')
             ->cron('* * * * *');
}

Dans le code ci-dessus, nous utilisons la méthode cron pour spécifier l'heure d'exécution de la tâche. Le format de l'expression Cron est :

*    *    *    *    *    *
-    -    -    -    -    -
|    |    |    |    |    |
|    |    |    |    |    +----- day of the week (0 - 6) (Sunday=0)
|    |    |    |    +---------- month (1 - 12)
|    |    |    +--------------- day of the month (1 - 31)
|    |    +-------------------- hour (0 - 23)
|    +------------------------- minute (0 - 59)
+------------------------------ second (0 - 59) [可选]

Dans cet exemple, nous définissons la tâche à exécuter toutes les minutes. Il s'agit également d'un cas de test Dans des situations réelles, vous devez définir l'expression Cron en fonction des besoins réels.

En plus de définir des tâches planifiées dans la classe Kernel, vous pouvez également planifier des tâches planifiées dans n'importe quelle classe en appelant la classe Scheduler de Laravel. Voici un exemple d'appel d'une tâche planifiée dans un contrôleur :

// app/Http/Controllers/MyController.php

use Illuminate\Console\Scheduling\Schedule;

class MyController extends Controller
{
    public function index(Schedule $schedule)
    {
        $schedule->call(function () {
            // 这里是定时调用的任务逻辑
        })->weekly();
    }
}

Dans le code ci-dessus, nous plaçons la logique de planification dans la méthode d'index de la classe MyController et obtenons l'instance du planificateur via l'injection de dépendances. L'effet de cet exemple est le même que celui de la méthode de planification des tâches dans la classe Kernel.

En général, la fonction de planification des tâches de Laravel fournit une fonction très simple et puissante d'appel régulier de méthodes. Grâce à une configuration simple, elle peut réaliser l'exécution automatisée de nombreuses tâches périodiques, ce qui permet aux développeurs de se concentrer davantage sur la logique métier sans avoir à le faire. vous soucier des détails de mise en œuvre de la planification des tâches.

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