Cet article explique comment utiliser le planificateur de tâches de Laravel pour gérer les tâches administratives récurrentes sur un serveur, en tirant parti des commandes artisanales et Cron. Ramovions l'explication:
Concepts clés:
crontab
(fichier de configuration). Les tâches Laravel sont généralement des scripts PHP en mode CLI. php artisan make:console
. Cela génère un framework de classe de commande pour les tâches personnalisées. schedule
de la classe Kernel
(app / console / kernel.php). Prend en charge les horaires horaires, quotidiens, hebdomadaires, mensuels et personnalisés. * * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
(exécute chaque minute). Laravel gère la fréquence et la prévention du chevauchement. Cron Basics (Brief):
Cron utilise une expression à cinq champs (minute, heure, jour de mois, mois, jour de semaine) pour définir la planification. *
représente toutes les valeurs. Exemple: 30 12 * * * command/to/run
(fonctionne tous les jours à 12h30).
Création de commandes artisanales de Laravel:
La création d'une commande est simple:
php artisan make:console HappyBirthday --command=sms:birthday
handle()
dans la classe de commande générée (app / console / commandes / happybirthday.php) pour contenir votre logique de tâche. Exemple (Envoi de SMS d'anniversaire): public function handle() { $users = User::whereBirthDate(date('m-d'))->get(); foreach ($users as $user) { if ($user->cellphone) { SMS::to($user->cellphone)->msg('Happy Birthday, ' . $user->fname . '!')->send(); } } $this->info('Birthday messages sent!'); }
app/Console/Kernel.php
dans le tableau $commands
. Commandes de planification:
Utilisez la méthode schedule
dans app/Console/Kernel.php
:
protected function schedule(Schedule $schedule) { $schedule->command('sms:birthday')->daily(); // Runs daily $schedule->command('anotherCommand')->hourly(); // Runs hourly $schedule->command('myTask')->dailyAt('09:30'); // Runs daily at 9:30 AM $schedule->command('weeklyTask')->weekly()->mondays(); // Runs every Monday $schedule->command('customCron')->cron('0 0 * * *'); // Runs daily at midnight (custom Cron expression) $schedule->command('conditionalTask')->daily()->when(function () { return condition(); }); //Conditional execution }
Démarrage du planificateur:
Ajoutez le travail cron unique mentionné ci-dessus au crontab de votre serveur. Le planificateur de Laravel gère le reste.
Questions fréquemment posées (FAQ):
(les FAQ d'origine sont bien écrites et complètes; aucun changement nécessaire.)
Cette réponse révisée maintient les informations originales tout en améliorant la clarté et la structure. Les exemples de code sont également légèrement améliorés pour la lisibilité et les meilleures pratiques.
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!