48 lines
1.2 KiB
PHP
Executable File
48 lines
1.2 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Console;
|
|
|
|
use Illuminate\Console\Scheduling\Schedule;
|
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
|
|
|
class Kernel extends ConsoleKernel
|
|
{
|
|
/**
|
|
* Define the application's command schedule.
|
|
*/
|
|
protected function schedule(Schedule $schedule): void
|
|
{
|
|
$interval = $this->getCleanupInterval();
|
|
$schedule->command('cleanup:orphaned-videos --force')
|
|
->cron("*/{$interval} * * * *")
|
|
->withoutOverlapping()
|
|
->runInBackground();
|
|
|
|
// Evict NAS stream-cache files older than 24 hours
|
|
$schedule->call(function () {
|
|
$nas = app(\App\Services\NasSyncService::class);
|
|
if ($nas->isEnabled()) {
|
|
$nas->clearNasCache(24);
|
|
}
|
|
})->daily()->name('nas-cache-evict')->withoutOverlapping();
|
|
}
|
|
|
|
/**
|
|
* Register the commands for the application.
|
|
*/
|
|
protected function commands(): void
|
|
{
|
|
$this->load(__DIR__.'/Commands');
|
|
|
|
require base_path('routes/console.php');
|
|
}
|
|
|
|
/**
|
|
* Get the interval in minutes for cleanup (from .env)
|
|
*/
|
|
protected function getCleanupInterval(): int
|
|
{
|
|
return (int) env('CLEANUP_INTERVAL_MINUTES', 30);
|
|
}
|
|
}
|