Maison  >  Article  >  cadre php  >  Les tâches planifiées de Laravel doivent-elles utiliser cron ?

Les tâches planifiées de Laravel doivent-elles utiliser cron ?

WBOY
WBOYoriginal
2022-06-02 16:42:582087parcourir

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 .

Les tâches planifiées de Laravel doivent-elles utiliser cron ?

L'environnement d'exploitation de cet article : système linux7.3, Laravel version 5.4, ordinateur Dell G3.

Avez-vous besoin d'utiliser cron pour les tâches planifiées de Laravel ?

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 :

Les tâches planifiées de Laravel doivent-elles utiliser cron ?

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 -l
sur la ligne de commande

Les tâches planifiées de Laravel doivent-elles utiliser cron ?

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!

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