Maison  >  Article  >  développement back-end  >  Analyse du calendrier des tâches planifiées Laravel de PHP

Analyse du calendrier des tâches planifiées Laravel de PHP

不言
不言original
2018-07-14 16:48:372796parcourir

Cet article présente principalement l'analyse du calendrier des tâches planifiées de PHP Laravel.Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Prémisse : La méthode décrite dans cet article est la suivante. utiliser les tâches planifiées crontab de Linux aide à implémenter la planification Laravel (Mac également).
1. Ajoutez d’abord la tâche planifiée Crontab. Voici juste une brève introduction.
Utilisez la commande crontab -e pour ajouter le contenu suivant

* * * * * /usr/local/bin/php /usr/local/var/www/projectName/artisan schedule:run >> /dev/null 2>&1

La commande ci-dessus Crontab ajustera la commande de planification de Laravel toutes les minutes, puis Laravel jugera et exécutera la tâche.
Remarque : Faites attention aux répertoires de php et artisan, dont php peut visualiser le répertoire php
***** 你的命令
De plus, les 5* devant la commande ci-dessus représentent les minutes, les heures, les jours, mois et semaines respectivement.
Minute : un entier compris entre 0 et 59, les valeurs par défaut * et */1 représentent 1 minute.
Heure : un entier de 0 à 23.
Jour : un entier de 1 à 31.
Mois : un nombre entier de 1 à 12.
Jour de la semaine : un nombre entier de 0 à 7, 0 et 7 représentent le dimanche.
crontab -l peut lister les tâches planifiées en cours.

2. Ajoutez une tâche de planification Laravel.
1. Définissez votre tâche de planification dans la classe AppConsoleKernel :

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Laravel\Lumen\Console\Kernel as ConsoleKernel;
use Log;class Kernel extends ConsoleKernel
{    /**
     * The Artisan commands provided by your application.
     * 定义Artisan命令
     * @var array
     */    protected $commands = [
                \App\Console\Commands\test::class,

    ];    /**
     * Define the application&#39;s command schedule.
     * 定义调度任务
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */    protected function schedule(Schedule $schedule)
    {        //方法一://            $schedule->call(function () {//                Log::info(&#39;任务调度&#39;);//            })->everyMinute();        //方法二:
        $schedule->command(&#39;test&#39;)->everyMinute();
    }
}

Deux méthodes d'implémentation sont données ci-dessus. La première méthode consiste à utiliser des fermetures et la deuxième méthode consiste à utiliser des commandes Artisan.
L'heure de planification peut être variée :
->cron('* * * * *'); Exécuter des tâches selon un calendrier Cron personnalisé
->everyMinute(); Exécuter une tâche par minute
->everyFiveMinutes(); Exécuter une tâche toutes les cinq minutes
->everyTenMinutes(); Exécuter une tâche toutes les dix minutes
->everyThirtyMinutes(); >hourly(); Exécuter la tâche toutes les heures
->daily(); Exécuter la tâche tous les jours à 0h00
->dailyAt('13:00'); jour à 13h00 Tâche
->twiceDaily(1, 13); Exécuter la tâche à 13h00 et 13h00 tous les jours
->hebdomadaire(); >->monthly(); Every Exécutez la tâche une fois par mois
Il existe des méthodes supplémentaires, veuillez vous référer à : http://laravelacademy.org/post/235.html

Continuez avec la deuxième méthode. :

3. Définir la méthode de commande Artisan :


D'accord, ce qui précède peut exécuter la tâche planifiée. Il y a une petite astuce si la tâche ci-dessus n'est pas exécutée, vous pouvez utiliser la commande php. liste d'artisans pour imprimer quelques messages d'erreur
<?php namespace App\Console\Commands;

use Illuminate\Console\Command;
use Log;class test extends Command {    /**
     * The console command name.
     *
     * @var string
     */    protected $name = &#39;test:putcache&#39;;    /**
     * The console command description.
     *
     * @var string
     */    protected $description = &#39;test controller&#39;;    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {            //这里做任务的具体处理,可以用模型
            Log::info(&#39;任务调度&#39;.time());
    }

}

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Une autre façon d'effectuer des tests de base de données Laravel (SQLite)


Déploiement de l'environnement de développement Laravel Installation et installation de Homestead processus de configuration (système Windows)

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