Laravel 5 programme ne fonctionne pas
Mon laravel version est 5.0.28, je construire sur cloud9, et j'ai ajouté cette commande pour mon cron:
#!/bin/bash
PATH=/usr/bin
* * * * * php /home/ubuntu/workspace/app/artisan scheduled:run 1>> /dev/null 2>&1
J'ai ajouté ce code sur mon Kernel.php
. J'ai référencé ce site: https://laravel-news.com/2014/11/laravel-5-scheduler/
<?php namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Http\Controllers\ApiController;
class Kernel extends ConsoleKernel {
protected $commands = [
'App\Console\Commands\Inspire',
];
protected function schedule(Schedule $schedule)
{
$schedule->call('ApiController@test_job')->hourly();
}
}
J'ai attendu et il ne fonctionne toujours pas, alors j'ai essayé d'utiliser la commande php artisan schedule:run
, et j'ai eu: No scheduled commands are ready to run.
J'ai cherché et trouvé cette réponse: Laravel 5 "Classe n'existe pas" lors de l'utilisation de l'ordonnanceur
J'ai donc modifié mon code. En outre, ce code n'avait pas de temps spécifiée, j'ai donc modifié mon cron
pour spécifier l'heure, mais ça ne fonctionne toujours pas. Je n'ai plus d'idées. s'il vous plaît aider. Merci.
code
$schedule->call(join('@', [ApiController::class, 'test_job']));
cron
0 0,3,6,9,12,15,18,21 * * * php /home/ubuntu/workspace/app/artisan schedule:run 1>> /dev/null 2>&1
30 1,4,7,10,13,16,19,22 * * * php /home/ubuntu/workspace/app/artisan schedule:run 1>> /dev/null 2>&1
OriginalL'auteur lighter | 2015-06-05
Vous devez vous connecter pour publier un commentaire.
Laravel planificateur fonctionne avec les commandes, pas avec des méthodes de contrôleur:
Console\Kernel.php
:$schedule->call(join('@', [ApiController::class, 'test_job']));
, et j'ai utiliser la commandephp artisan schedule:run
, il va exécuter la commande. Mais j'utilise d'origine, il va me direNo scheduled commands are ready to run.
voir la réponse de mise à jour
oh~ je l'ai eu, merci.
J'ai modifier mon cron
* * * * * php /home/ubuntu/workspace/app/artisan schedule:run 1>> /dev/null 2>&1
, et mon emploi du temps est comme la vôtre$schedule->command('purchase:podcast')->hourly();
, j'essaie de le lancerphp artisan schedule:run
, et j'ai eu ce messageNo scheduled commands are ready to run.
, c'est pourquoi? Si je modifie mon programme pour$schedule->command('purchase:podcast')->cron('* */1 * * *');
, il sera exécuté.intéressant, pouvez-vous vous faire une question?
OriginalL'auteur Limon Monte
premier à Tester si cron est en cours d'exécution sur votre serveur ou localhost type:
si il n'est pas installé:
pour permettre à laravel planificateur de:
et vous pouvez sélectionner un éditeur si pas vim s'ouvre directement. Assurez-vous d'y entrer cette ligne en bas:
de Tester si vous avez de l'installation à l'intérieur de laravel le planificateur de droit, de l'exécuter à partir de votre dossier de projets:
ce qui doit exécuter les tâches et vous dire ce qui est en train de faire.
OriginalL'auteur Grigoreas P.
Il y a plusieurs aspects à trouver la cause:
Tout d'abord, vérifiez que le "fuseau horaire" dans config/app.php est correctement réglé. Laravel permet de réinitialiser le fuseau horaire, même si vous avez déjà configuré en php.ini.
Ensuite, vérifiez que crontab fonctionne comme prévu. Lorsque vous obtenez le message "Pas de calendrier pour être prêt", cela signifie que votre crontab est en cours d'exécution et peut détecter le php et artisan de commande.
OriginalL'auteur lydiacx
Afin de compléter @limonte répondre à la créer de Commande de la Console est le suivant:
Référence ici: lien
OriginalL'auteur Eugen Zaharia