Quelqu'un peut-il me dire que j'ai besoin de créer un calendrier dans Laravel 5.4 qui s'exécute automatiquement chaque week-end.
J'ai d'abord créé un fichier FollowAdvisor.php à /app/Console/Commands/
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use DB;
class FollowAdvisor extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'follow:advisor';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
DB::table('followers')->delete();
$this->info('All inactive users are deleted successfully');
}
}
Ensuite, j'accède à ce fichier sur Kernel.php situé à /api/app/Console/
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use DB;
use App\Model\Follow;
class Kernel extends ConsoleKernel
{
protected $commands = [
Commands\FollowAdvisor::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->exec('follow:advisor')->everyMinute();
}
protected function commands()
{
require base_path('routes/console.php');
}
}
Lorsque j'exécute la commande php artisan follow:advisor
sur l'invite de commande. Ça fonctionne. Mais je veux qu'il s'exécute automatiquement.
Merci
2 réponses
https://laravel.com/docs/5.4/scheduling
Assurez-vous d'avoir un crontab en cours d'exécution qui pointe vers le fichier Laravel
artisan
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
->saturdays();
est un moyen plus rapide / plus expressif qu'un crontab de dire tous les samedis
Démarrage du planificateur Lorsque vous utilisez le planificateur, il vous suffit d'ajouter l'entrée Cron suivante à votre serveur. Si vous ne savez pas comment ajouter des entrées Cron à votre serveur
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
Ce Cron appellera le planificateur de commandes Laravel toutes les minutes. Lorsque la commande schedule: run est exécutée, Laravel évaluera vos tâches planifiées et exécutera les tâches qui sont dues.
REF: https://laravel.com/docs/5.4/scheduling#introduction
Questions connexes
De nouvelles questions
laravel
Laravel est un framework web PHP gratuit et open-source, créé par Taylor Otwell et destiné au développement d'applications web suivant le modèle architectural modèle-vue-contrôleur (MVC) et basé sur Symfony. Le code source de Laravel est hébergé sur GitHub et sous licence selon les termes de la licence MIT.