Les tâches planifiées de Laravel doivent utiliser cron ; si vous souhaitez exécuter régulièrement toutes les tâches de Laravel dans Laravel, vous devez ajouter une entrée cron sur le serveur et ajouter le code "chemin du projet phppath/planification artisanale:exécuter..." le fichier racine .
L'environnement d'exploitation de cet article : système linux7.3, Laravel version 5.4, ordinateur Dell G3.
Il existe une fonction très puissante dans Laravel. Il vous suffit d'ajouter une entrée cron sur le serveur pour exécuter régulièrement toutes les tâches de Laravel.
Maintenant, nous avons le tableau de données suivant :
Je veux que la valeur du champ cron dans la table cron augmente de 1 chaque minute, alors j'ai besoin des étapes suivantes :
1 Écrivez le code Laravel dans. AppConsoleKernel.php
protected function schedule(Schedule $schedule) { $schedule->call(function () { DB::table('cron')->increment('cron'); })->everyMinute(); }
2. Ajoutez du code au fichier /var/spool/cron/root du service
Remarque : Il est préférable d'utiliser l'éditeur vim pour modifier le fichier. Si vous utilisez winscp pour modifier le fichier, il y aura un problème de non-exécution de la tâche.
Entrez
crontab -e
sur la ligne de commande et ajoutez le code suivant
* * * * * /usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev/null 2>&1
Entrez
crontab -u root -lsur la ligne de commande
Il n'est pas nécessaire de redémarrer le service cron, car le système lira les fichiers dans le /var /spool/cron toutes les minutes.
Si vous constatez qu'elle ne peut toujours pas être exécutée selon la configuration suivante, vous pouvez utiliser les méthodes suivantes pour résoudre le problème :
Vérifiez si la commande utilise un chemin absolu. Par exemple, utilisez /usr/local/php/. bin/php au lieu de php ici, utilisez /data /wwwroot/test/artisan au lieu de artisan.
Si le chemin absolu n'est toujours pas exécuté, saisissez directement /usr/local/php/bin/php /data/wwwroot/test/artisan planning:run 1>> /dev/null 2> , voyez s'il est exécuté. S'il n'est pas exécuté, c'est un problème avec le code laravel. S'il est exécuté, cela signifie qu'il s'agit d'un problème de variable d'environnement. Si vous ne savez pas où se trouve php, entrez quel php sur la ligne de commande, vous serez invité à indiquer où php est installé.
【Recommandation associée : tutoriel vidéo 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!