Skip to content

Cron & Scheduler

Laravel Scheduler permet de définir des tâches planifiées dans le code plutôt que dans le crontab.

Ajoutez une seule entrée cron pour exécuter le scheduler Laravel :

Terminal window
* * * * * cd /var/www/xetasuite-core && php artisan schedule:run >> /dev/null 2>&1
Terminal window
crontab -e

Ajoutez la ligne ci-dessus.

Les tâches sont définies dans routes/console.php :

use Illuminate\Support\Facades\Schedule;
// Nettoyage des sessions expirées
Schedule::command('session:gc')->daily();
// Purge des jobs en échec anciens
Schedule::command('queue:prune-failed --hours=48')->daily();
// Backup quotidien
Schedule::command('backup:run')->dailyAt('02:00');
// Nettoyage des anciens backups
Schedule::command('backup:clean')->dailyAt('03:00');
Terminal window
php artisan schedule:list
Terminal window
php artisan schedule:run
Terminal window
php artisan backup:run

Éditez config/backup.php :

'backup' => [
'name' => env('APP_NAME', 'xetasuite'),
'source' => [
'files' => [
'include' => [base_path()],
'exclude' => [
base_path('vendor'),
base_path('node_modules'),
],
],
'databases' => ['pgsql'],
],
'destination' => [
'disks' => ['s3'], // ou 'local'
],
],
Terminal window
# Exécuter le backup
php artisan backup:run
# Exécuter le backup (base de données uniquement)
php artisan backup:run --only-db
# Lister les backups
php artisan backup:list
# Nettoyer les anciens backups
php artisan backup:clean
Terminal window
php artisan schedule:list
Terminal window
tail -f storage/logs/laravel.log
Terminal window
php artisan queue:failed