diff --git a/app/Console/Commands/SystemMaintenance.php b/app/Console/Commands/SystemMaintenance.php new file mode 100644 index 000000000..176aa1c16 --- /dev/null +++ b/app/Console/Commands/SystemMaintenance.php @@ -0,0 +1,43 @@ +refreshCache(); + + return Command::SUCCESS; + } + + /** + * Clear and refresh the cache. + */ + protected function refreshCache(): void + { + Artisan::call('optimize:clear'); + + Artisan::call('optimize'); + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 5fcdf0264..c69e12152 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -3,6 +3,7 @@ namespace App\Console; use App\Console\Commands\RunOoklaSpeedtest; +use App\Console\Commands\SystemMaintenance; use App\Console\Commands\VersionChecker; use App\Settings\GeneralSettings; use Cron\CronExpression; @@ -18,6 +19,13 @@ protected function schedule(Schedule $schedule): void { $settings = new GeneralSettings(); + /** + * Perform system maintenance weekly on Sunday morning, + * start off the week nice and fresh. + */ + $schedule->command(SystemMaintenance::class)->weeklyOn(0) + ->timezone($settings->timezone ?? 'UTC'); + /** * Checked for new versions weekly on Thursday because * I usually do releases on Thursday or Friday.