Maison >cadre php >Laravel >Quelques problèmes courants liés aux tâches planifiées de Laravel qui ne s'exécutent pas

Quelques problèmes courants liés aux tâches planifiées de Laravel qui ne s'exécutent pas

PHPz
PHPzoriginal
2023-04-21 10:03:091980parcourir

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.

  1. Vérifiez la configuration de la tâche planifiée

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 :

  1. Vérifiez l'heure du système

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.

  1. Vérifiez les autorisations de l'utilisateur pour exécuter les tâches planifiées

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.

  1. Vérifiez si la tâche est verrouillée

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 :

  • Le temps de verrouillage des tâches est trop long : si notre tâche s'exécute trop longtemps, le temps de verrouillage des tâches peut être trop long. À ce stade, nous devons ajuster le. temps de verrouillage.
  • La tâche ne se termine pas normalement : Si notre tâche se termine anormalement, cela entraînera également le verrouillage de la tâche. À ce stade, nous pouvons trouver le problème et le résoudre en consultant le fichier journal.
  1. Vérifiez si la tâche planifiée est activée

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!

Déclaration:
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