Table des matières
1. Configuration du planificateur
2. Définition des tâches planifiées
3. Options de planification communes
4. Empêcher le chevauchement et assurer l'exécution d'un seul serveur
5. Sortie et journalisation
6. Tester les tâches planifiées
Maison cadre php Laravel Comment utiliser la planification des tâches de Laravel

Comment utiliser la planification des tâches de Laravel

Aug 31, 2025 am 06:07 AM
laravel Planification des tâches

Le système de planification des tâches de Laravel vous permet de définir et de gérer les tâches de synchronisation via PHP, sans modifier manuellement le serveur Crontab, vous n'avez qu'à ajouter une tâche CRON qui est exécutée une fois par minute au serveur: * CD / PATH-TO-YOUR-YOUR-YOUR-YOUR-YOUR-TROSCH && Php Artisan Schedule: Exécuter >> / Dev / Null 2> & 1, puis tous les tasks sont configurés dans la méthode de la programmation de la programmation de la méthode de l'Applel \ Kernel; 1. La définition des tâches peut utiliser des méthodes de commande, d'appel ou d'exécution, telles que $ calendrier-> Commande ('e-mail: Send') -> Daily () pour réaliser l'envoi de courriels quotidiens; 2. Prend en charge une variété d'options de planification, telles que -> EveryFiveMinutes (), -> DailyAt ('10: 00 '), -> Weekly (), -> Weekdays () et -> Timezone (' America / New_york '), etc. Pour contrôler précisément l'heure d'exécution; 3. Utiliser -> SansOverlapping () pour empêcher les tâches de se chevaucher l'exécution, et combiner -> onOneserver () pour s'assurer qu'elle s'exécute une seule fois dans un environnement multi-serveur, et dépend de la prise en charge Redis ou du pilote de cache de base de données; 4. Vous pouvez écrire la sortie dans le fichier journal via -> sendOutputTo () ou -> appendOutputto (), et utiliser -> emailutputonFailure ('admin@example.com ') pour envoyer des notifications par e-mail lors de l'échec; 5. Vous pouvez utiliser PHP Artisan Schedule: Exécutez manuellement l'exécution du planificateur, ou utiliser PHP Artisan Schedule: Liste pour afficher la liste des tâches définies pour vérifier la correction de la configuration, réalisant ainsi la gestion des tâches planifiées centralisées et faciles à réparer.

Comment utiliser la planification des tâches de Laravel

Le système de planification des tâches de Laravel vous permet de définir et de gérer les travaux CRON directement dans PHP, ce qui facilite l'automatise des tâches récurrentes comme le nettoyage des journaux, l'envoi de courriels ou la synchronisation des données. Au lieu de modifier manuellement le crontab du serveur, Laravel fournit une syntaxe propre et expressive pour définir les tâches planifiées dans votre application.

Voici comment utiliser efficacement la planification des tâches de Laravel.


1. Configuration du planificateur

Pour commencer, il vous suffit d'ajouter une entrée cron sur votre serveur. Ce travail Cron unique appelle le planificateur de Laravel à chaque minute, qui vérifie ensuite si des tâches planifiées devraient s'exécuter.

Ajoutez cette ligne à Crontab de votre serveur (utilisez crontab -e pour modifier):

 * * * * * CD / path-to-your-project && php Artisan Schedule: Exécuter >> / dev / null 2> & 1

Remplacez /path-to-your-project avec le chemin réel vers votre application Laravel.

Une fois cette configuration, toutes vos tâches planifiées seront gérées à partir de Laravel, en particulier dans la classe App\Console\Kernel .


2. Définition des tâches planifiées

Ouvrez le fichier app/Console/Kernel.php . À l'intérieur de la méthode schedule , vous pouvez définir toutes vos commandes récurrentes.

Par exemple, prévoyons une commande artisanale pour s'exécuter quotidiennement:

 Horaire des fonctions protégées (calendrier calendrier)
{
    $ calendrier-> Commande ('e-mail: Send') -> Daily ();
}

Vous pouvez également planifier les fermetures:

 $ calendrier-> appel (fonction () {
    // effacer le cache ou effectuer un nettoyage
    \ Cache :: flush ();
}) -> hourly ();

Ou exécutez les commandes de shell:

 $ calendrier-> exec ('rm / tmp / *. tmp') -> quotidien ();

3. Options de planification communes

Laravel fournit de nombreuses méthodes à contrôler lorsqu'une tâche s'exécute. Voici quelques-uns des plus utiles:

  • ->everyFiveMinutes() - fonctionne toutes les 5 minutes
  • ->hourly() - Une fois par heure
  • ->daily() - Une fois par jour à minuit
  • ->dailyAt('10:00') - tous les jours à 10 h
  • ->weekly() - une fois par semaine (dimanche à 00:00)
  • ->monthly() - Une fois par mois
  • ->weekdays() - uniquement les jours de semaine
  • ->timezone('America/New_York') - Définissez un fuseau horaire spécifique

Exemple combinant plusieurs contraintes:

 $ calendrier-> Commande ('Backup: Run')
         -> Daily ()
         -> à ('02: 30 ')
         -> Timezone («Europe / Londres»)
         -> onOneserver (); // empêche le chevauchement sur plusieurs serveurs

4. Empêcher le chevauchement et assurer l'exécution d'un seul serveur

Si une tâche prend plus de temps que prévu, elle pourrait chevaucher la prochaine exécution. Pour éviter cela, utilisez:

 $ calendrier-> Command ('long: tâche') -> quotidien () -> withonoverlapping ();

Lorsque vous exécutez plusieurs serveurs (par exemple, équilibré en charge), utilisez onOneServer() pour vous assurer que la tâche ne fonctionne qu'une seule fois sur le cluster:

 $ calendrier-> commande ('sync: feeds') -> hourly () -> onOneserver ();

Cela nécessite que votre application utilise un pilote de cache qui prend en charge les verrous atomiques (comme Redis ou la base de données).


5. Sortie et journalisation

Vous pouvez enregistrer la sortie des commandes planifiées dans un fichier ou le enregistrer:

 $ calendrier-> Commande («e-mail: envoyer»)
         -> Daily ()
         -> SendOutputTo (Storage_Path ('Logs / Email-Schedule.log'));

Ou ajoutez la sortie et les erreurs:

 $ calendrier-> Commande («e-mail: envoyer»)
         -> Daily ()
         -> APPENDOutputTo (Storage_Path ('Logs / Email-Schedule.log'));

Vous pouvez également envoyer un e-mail à la sortie en cas de problème (utile pour la surveillance):

 $ calendrier-> Commande («e-mail: envoyer»)
         -> Daily ()
         -> emailOutputonFailure ('admin@example.com ');

Assurez-vous que vos paramètres de messagerie sont configurés.


6. Tester les tâches planifiées

Pour tester manuellement si votre horaire s'exécute correctement, utilisez:

 PHP Artisan Halends: Run

Cette commande exécute le planificateur de Laravel, qui vérifie toutes les tâches définies et exécute toutes les autres.

Vous pouvez également énumérer tous les travaux prévus (Laravel 9):

 PHP Artisan Horaire: Liste

Cela aide à vérifier votre syntaxe et votre timing.


Fondamentalement, la planification des tâches de Laravel simplifie la gestion de l'emploi CRON en la centralisant en PHP. Tant que la principale entrée CRON est configurée, vous pouvez définir, modifier et surveiller toutes les tâches récurrentes directement dans votre code.

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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser Eloquent dans Laravel Comment utiliser Eloquent dans Laravel Aug 21, 2025 pm 02:30 PM

Créer des modèles et la migration: utilisez PhPartisanMake: ModelPost-M pour générer des modèles et des fichiers de migration, définissez la structure du tableau et exécutez PhPartisanMigrate; 2. 3. Utiliser une association éloquente: définir l'appartenance et les relations HasMany dans le modèle, et utilisez la méthode avec () pour précharger les données associées pour éviter les problèmes de requête n 1; 4. Requête éloquente: utilisez le constructeur de requête pour des appels de chaîne tels que où

Comment utiliser la planification des tâches de Laravel Comment utiliser la planification des tâches de Laravel Aug 31, 2025 am 06:07 AM

Le système TaskSCheduling de Laravel vous permet de définir et de gérer les tâches de synchronisation via PHP, sans éditer manuellement le serveur Crontab, vous n'avez qu'à ajouter une tâche CRON qui est exécutée une fois par minute au serveur: * CD / PATH-TOT-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-TROject && phpartisanschedule: Exécuter >> / Dev / Null2> & 1, et ensuite les tâches sont configurées dans la méthode de la programmation de l'accident \ Kernl; 1. La définition des tâches peut utiliser des méthodes de commande, d'appel ou d'exécution, telles que $ calendrier-

Comment créer un réseau social avec Laravel Comment créer un réseau social avec Laravel Sep 01, 2025 am 06:39 AM

Oui, YouCancreatEasocialNetworkwithLaravelByFollowingTheSestests: 1.SetUpLaraveLusingComposer, Configurethe.envfile, pertinentAuthenticationViabeze / Jetsstream / Fortify, andrunmigrationsforUserManagement.2

Comment travailler avec les relations polymorphes à Laravel Comment travailler avec les relations polymorphes à Laravel Aug 25, 2025 am 10:56 AM

PolymorphicRelationshipSinLaravelallowamodellikEcommentorimagetobelongTomultipleModelsSuchaspost, vidéo, OruserUsingAingLinsEassociation.2.Thedatabaseschemarequires {relation} _idand {relation} _TypeinacoMn, eXEMPLIBudcuMeMment_idandcunable_typeinacoMnus, EXEMPLIBUDAMENTALE_DANDANMETALAGE_

Comment créer un backend d'application mobile avec Laravel Comment créer un backend d'application mobile avec Laravel Sep 02, 2025 am 08:34 AM

L'utilisation de Laravel pour créer un backend mobile nécessite d'abord d'installer le cadre et de configurer l'environnement de la base de données; 2. Définissez les routes API dans Routes / API.php et renvoyez une réponse JSON à l'aide du contrôleur de ressource; 3. Implémentez l'authentification de l'API via Laravelsanctum pour générer des jetons pour le stockage mobile et l'authentification; 4. Vérifiez le type de fichier lors du téléchargement de fichiers et stockez-le sur le disque public, et créez des liens souples pour un accès externe; 5. L'environnement de production nécessite HTTPS, définir les limites de courant, configurer les COR, effectuer le contrôle de la version API et optimiser la gestion des erreurs. Il est également recommandé d'utiliser les ressources API, la pagination, les files d'attente et les outils de documents API pour améliorer la maintenabilité et les performances. Utilisez Laravel pour construire un coffre-fort,

Comment internationaliser une application Laravel Comment internationaliser une application Laravel Aug 22, 2025 pm 02:31 PM

Créer des fichiers linguistiques: créer des sous-répertoires pour chaque langue (tels que EN, ES) dans le répertoire Resources / Lang et ajouter des fichiers messages.php, ou utiliser le fichier JSON pour stocker la traduction; 2. Définir le langage de l'application: Lisez l'en-tête de demande Accept-Language via le middleware ou détectez le langage via un préfixe d'URL, définissez la langue actuelle à l'aide d'App () -> setLocale () et enregistrez le middleware dans kernel.php; 3. Utilisez des fonctions de traduction: utilisez __ (), trans () ou @lang dans la vue pour obtenir le contenu de traduction, et il est recommandé d'utiliser __ () qui prend en charge le secours; 4. Paramètres de soutien et pluriel: Utilisez les espaces réservés dans les chaînes de traduction telles que: n

Comment enregistrer les messages dans un fichier dans Laravel? Comment enregistrer les messages dans un fichier dans Laravel? Sep 21, 2025 am 06:04 AM

LaravelsesMonologTologMessagesViathelogFacade, avec DefaultLogsStoredInstorage / Logs / Laravel.log.ConfigureChannelsInConfig / Logging.PhptoControloutput

Comment implémenter une fonctionnalité 'Remember Me' dans Laravel Comment implémenter une fonctionnalité 'Remember Me' dans Laravel Aug 31, 2025 am 08:53 AM

Assurez-vous qu'il existe une colonne Remember_token dans la table utilisateur. La migration par défaut de Laravel comprend déjà ce champ. Sinon, il sera ajouté par migration; 2. Ajoutez une case à cocher avec le nom Rappelez-vous dans le formulaire de connexion pour fournir l'option "Remember Me"; 3. Passez le paramètre Remember à la méthode AUTH :: TUT () pendant l'authentification manuelle pour activer la connexion persistante; 4. "Remember Me" dure 5 ans par défaut et peut être personnalisé via l'élément de configuration Remember_For dans config / auth.php; 5. Laravel invalide automatiquement Remember_Token lorsque le mot de passe change ou les suppressions de l'utilisateur. Il est recommandé d'utiliser HTTPS pour assurer la sécurité dans l'environnement de production; 6

See all articles