Maison >cadre php >Laravel >Calendrier des tâches planifiées PHP Laravel [informations sèches]

Calendrier des tâches planifiées PHP Laravel [informations sèches]

藏色散人
藏色散人avant
2020-06-23 13:43:305369parcourir

Ce qui suit est une introduction au calendrier des tâches planifiées PHP Laravel de la colonne du didacticiel Laravel. J'espère que cela sera utile aux amis dans le besoin !

Calendrier des tâches planifiées PHP Laravel [informations sèches]

Prémisse : La méthode décrite dans cet article consiste à utiliser la tâche planifiée crontab de Linux pour aider à implémenter la planification Laravel (la même chose est vraie pour Mac).

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

Comme indiqué :

Calendrier des tâches planifiées PHP Laravel [informations sèches]

La commande ci-dessus Crontab ajustez-le toutes les minutes avec la commande planning de Laravel, puis Laravel détermine la tâche d'exécution.

Remarque : Faites attention aux répertoires de php et artisan, dont php peut consulter le répertoire php

***** 你的命令

De plus, le 5* devant le La commande ci-dessus représente les minutes, l'heure, le jour, le mois et la semaine.

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 nombre entier de 1 à 31.

Mois : un 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. Ajouter 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();
    }
}

Ce qui précède donne deux exemples de méthodes d'implémentation. La première méthode consiste à utiliser des fermetures et la deuxième méthode consiste à utiliser des fermetures. utilisez les commandes Artisan pour l’implémenter.

Il existe de nombreuses heures de programmation :

->cron(‘* * * * *’); 在自定义Cron调度上运行任务
->everyMinute(); 每分钟运行一次任务
->everyFiveMinutes(); 每五分钟运行一次任务
->everyTenMinutes(); 每十分钟运行一次任务
->everyThirtyMinutes(); 每三十分钟运行一次任务
->hourly(); 每小时运行一次任务
->daily(); 每天凌晨零点运行任务
->dailyAt(‘13:00’); 每天13:00运行任务
->twiceDaily(1, 13); 每天1:00 & 13:00运行任务
->weekly(); 每周运行一次任务
->monthly(); 每月运行一次任务

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. Comment définir les commandes Artisan :

<?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());
    }
}

D'accord, vous pouvez maintenant exécuter des tâches planifiées, il y a une petite astuce. Si les tâches ci-dessus ne sont pas exécutées, vous pouvez utiliser la commande php artisan list pour imprimer des messages d'erreur.

Pour plus d'articles techniques liés à Laravel, veuillez visiter la colonne laravel !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer