From b19d3a20dd4db3c8bf4d221746986e37306dab38 Mon Sep 17 00:00:00 2001 From: Christian Winther Date: Thu, 4 Jan 2024 11:00:45 +0000 Subject: [PATCH] only run kernel tasks on one server lifted from https://github.com/pixelfed/pixelfed/pull/4634 --- app/Console/Kernel.php | 88 +++++++++---------- .../shared/docker-entrypoint.d/00-storage.sh | 2 +- .../shared/docker-entrypoint.d/01-cache.sh | 2 +- .../shared/docker-entrypoint.d/02-horizon.sh | 2 +- 4 files changed, 47 insertions(+), 47 deletions(-) diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 046924eb6..2b6510e35 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -7,53 +7,53 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { - /** - * The Artisan commands provided by your application. - * - * @var array - */ - protected $commands = [ - // - ]; + /** + * The Artisan commands provided by your application. + * + * @var array + */ + protected $commands = [ + // + ]; - /** - * Define the application's command schedule. - * - * @param \Illuminate\Console\Scheduling\Schedule $schedule - * - * @return void - */ - protected function schedule(Schedule $schedule) - { - $schedule->command('media:optimize')->hourlyAt(40); - $schedule->command('media:gc')->hourlyAt(5); - $schedule->command('horizon:snapshot')->everyFiveMinutes(); - $schedule->command('story:gc')->everyFiveMinutes(); - $schedule->command('gc:failedjobs')->dailyAt(3); - $schedule->command('gc:passwordreset')->dailyAt('09:41'); - $schedule->command('gc:sessions')->twiceDaily(13, 23); + /** + * Define the application's command schedule. + * + * @param \Illuminate\Console\Scheduling\Schedule $schedule + * + * @return void + */ + protected function schedule(Schedule $schedule) + { + $schedule->command('media:optimize')->hourlyAt(40)->onOneServer(); + $schedule->command('media:gc')->hourlyAt(5)->onOneServer(); + $schedule->command('horizon:snapshot')->everyFiveMinutes()->onOneServer(); + $schedule->command('story:gc')->everyFiveMinutes()->onOneServer(); + $schedule->command('gc:failedjobs')->dailyAt(3)->onOneServer(); + $schedule->command('gc:passwordreset')->dailyAt('09:41')->onOneServer(); + $schedule->command('gc:sessions')->twiceDaily(13, 23)->onOneServer(); - if(in_array(config_cache('pixelfed.cloud_storage'), ['1', true, 'true']) && config('media.delete_local_after_cloud')) { - $schedule->command('media:s3gc')->hourlyAt(15); - } + if (in_array(config_cache('pixelfed.cloud_storage'), ['1', true, 'true']) && config('media.delete_local_after_cloud')) { + $schedule->command('media:s3gc')->hourlyAt(15)->onOneServer(); + } - if(config('import.instagram.enabled')) { - $schedule->command('app:transform-imports')->everyFourMinutes(); - $schedule->command('app:import-upload-garbage-collection')->hourlyAt(51); - $schedule->command('app:import-remove-deleted-accounts')->hourlyAt(37); - $schedule->command('app:import-upload-clean-storage')->twiceDailyAt(1, 13, 32); - } - } + if (config('import.instagram.enabled')) { + $schedule->command('app:transform-imports')->everyFourMinutes()->onOneServer(); + $schedule->command('app:import-upload-garbage-collection')->hourlyAt(51)->onOneServer(); + $schedule->command('app:import-remove-deleted-accounts')->hourlyAt(37)->onOneServer(); + $schedule->command('app:import-upload-clean-storage')->twiceDailyAt(1, 13, 32)->onOneServer(); + } + } - /** - * Register the commands for the application. - * - * @return void - */ - protected function commands() - { - $this->load(__DIR__.'/Commands'); + /** + * Register the commands for the application. + * + * @return void + */ + protected function commands() + { + $this->load(__DIR__ . '/Commands'); - require base_path('routes/console.php'); - } + require base_path('routes/console.php'); + } } diff --git a/contrib/docker/shared/docker-entrypoint.d/00-storage.sh b/contrib/docker/shared/docker-entrypoint.d/00-storage.sh index 079a7887c..860ec0425 100755 --- a/contrib/docker/shared/docker-entrypoint.d/00-storage.sh +++ b/contrib/docker/shared/docker-entrypoint.d/00-storage.sh @@ -1,6 +1,6 @@ #!/bin/bash +set -o errexit -o nounset -o pipefail -set -e source /lib.sh entrypoint_log "==> Create the storage tree if needed" diff --git a/contrib/docker/shared/docker-entrypoint.d/01-cache.sh b/contrib/docker/shared/docker-entrypoint.d/01-cache.sh index df2466b27..06e440802 100755 --- a/contrib/docker/shared/docker-entrypoint.d/01-cache.sh +++ b/contrib/docker/shared/docker-entrypoint.d/01-cache.sh @@ -1,6 +1,6 @@ #!/bin/bash +set -o errexit -o nounset -o pipefail -set -e source /lib.sh entrypoint_log "==> config:cache" diff --git a/contrib/docker/shared/docker-entrypoint.d/02-horizon.sh b/contrib/docker/shared/docker-entrypoint.d/02-horizon.sh index 4afd1ea4a..04227cf40 100755 --- a/contrib/docker/shared/docker-entrypoint.d/02-horizon.sh +++ b/contrib/docker/shared/docker-entrypoint.d/02-horizon.sh @@ -1,6 +1,6 @@ #!/bin/bash +set -o errexit -o nounset -o pipefail -set -e source /lib.sh as_www_user php artisan horizon:publish