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 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.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

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

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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ù

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-

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

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

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,

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

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

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
