Dans mon application laravel sous routes / console.php ont une commande. Je veux exécuter cette commande chaque minute qui est donnée ci-dessous:
* * * * * cd /var/www/html/laravel_projects/user_profile/ && php artisan schedule:run 1>> /dev/null 2>&1
Dans l'océan numérique crontab, j'ai enregistré la commande ci-dessous mais ne fonctionne pas.
Artisan::command('inspire', function () { $this->comment(Inspiring::quote()); })->describe('Display an inspiring quote');
NB: dans l'état cron digitalocean montrant qu'il est actif et si j'exécute cette commande sous le répertoire du projet manuellement et son fonctionnement.
3 Réponses :
Vous devez définir un calendrier pour indiquer à Laravel les commandes que vous souhaitez exécuter.
Votre calendrier de tâches est défini dans la méthode de planification du fichier app/Console/Kernel.php
.
protected function schedule(Schedule $schedule) { $schedule->command('inspire')->daily(); // or some other time }
Ajouter un calendrier de tâches dans App \ Console \ Kernel.php
protected function schedule(Schedule $schedule) { $schedule->command('reminders:send')->everyMinute(); }
J'espère que cela aide.
redémarrage du service sudo cron
exécutez cette commande pour redémarrer le service cronjob
Comment être sûr que la commande ne s'exécute pas?
J'ai utilisé une activité sous Inspiring :: quote () mais cela ne fonctionne pas mais si j'exécute la commande php artisan inspire sous le répertoire du projet, cela fonctionne.