Avec le développement continu de l'Internet et des applications modernes, de nombreux programmeurs ont commencé à utiliser Laravel comme leur propre framework. La fonction de tâche planifiée fournie dans le framework Laravel peut effectuer automatiquement certaines tâches grâce à une configuration simple. Cependant, nous constatons parfois que ces tâches planifiées ne s'exécutent pas comme prévu. Que devons-nous faire à ce moment-là ?
Dans cet article, nous discuterons de certains problèmes courants liés aux tâches planifiées de Laravel qui ne s'exécutent pas et fournirons les solutions correspondantes.
Tout d'abord, nous devons vérifier si notre tâche planifiée a été configurée correctement. La configuration des tâches planifiées dans le framework Laravel est très simple. Définissez simplement une méthode de planification dans le fichier app/Console/Kernel.php. La méthode planning contient toutes les tâches que nous voulons exécuter, comme indiqué ci-dessous :
protected function schedule(Schedule $schedule) { $schedule->command('email:send')->daily(); $schedule->command('email:send --force')->hourly(); }
Notez que la commande email:send représente ici les tâches spécifiques que nous voulons exécuter. Si nos tâches planifiées sont configurées correctement, mais que les tâches planifiées ne peuvent toujours pas s'exécuter, nous pouvons alors envisager de vérifier les aspects suivants :
Les tâches planifiées de Laravel dépendent de l'heure du système si l'heure du système est incorrecte. , les tâches planifiées risquent de ne pas s'exécuter à temps. Par conséquent, nous devons vérifier si l’heure du système est correcte.
Si nous utilisons le système d'exploitation Linux, entrez la commande suivante dans le terminal pour afficher l'heure actuelle du système :
$ date
Si nous utilisons le système d'exploitation Windows, entrez la commande suivante dans l'invite de commande pour afficher l'heure actuelle du système :
> time/T > date/T
Si l'heure du système est incorrecte et que nous devons régler manuellement l'heure correcte.
Les tâches planifiées de Laravel sont exécutées par défaut avec les autorisations de l'utilisateur actuellement connecté. Si l'utilisateur actuellement connecté dispose d'autorisations insuffisantes, les tâches planifiées risquent de ne pas s'exécuter correctement. Par conséquent, nous devons vérifier si les autorisations de l'utilisateur pour exécuter la tâche planifiée sont suffisantes.
Vous pouvez utiliser la commande suivante pour afficher l'utilisateur actuel :
$ whoami
Si l'utilisateur actuel n'a pas les autorisations suffisantes, nous pouvons essayer d'utiliser la commande sudo pour exécuter la tâche planifiée Laravel :
$ sudo php artisan schedule:run
Notez que nous avons besoin d'un administrateur droits pour utiliser la commande sudo.
Le mécanisme par défaut des tâches planifiées de Laravel consiste à ajouter un verrou à une tâche lorsqu'elle est en cours d'exécution pour éviter une exécution répétée. Si l'exécution de la tâche en cours n'est pas terminée, une nouvelle tâche ne peut pas être démarrée. À ce stade, nous devons vérifier les deux situations suivantes :
Enfin, nous devons vérifier si la tâche planifiée est activée. Certaines tâches planifiées peuvent être activées manuellement. Nous devons vérifier si elles sont activées.
Nous pouvons afficher toutes les tâches planifiées via la commande suivante :
$ crontab -l
Si la tâche planifiée n'est pas affichée dans la liste, nous devons l'ajouter manuellement à la liste des tâches planifiées.
Résumé
Dans le framework Laravel, vous pouvez facilement automatiser certaines tâches en utilisant des tâches planifiées. Cependant, au cours du processus de développement proprement dit, nous pouvons rencontrer le problème des tâches planifiées qui ne s'exécutent pas. Cet article fournit quelques solutions courantes à ce problème pour nous aider à mieux utiliser les tâches planifiées dans le framework 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!