diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 4b642ad..beeb134 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -12,9 +12,6 @@ use Spatie\Health\Checks\Checks\DatabaseConnectionCountCheck; use Spatie\Health\Checks\Checks\DebugModeCheck; use Spatie\Health\Checks\Checks\EnvironmentCheck; -use Spatie\Health\Checks\Checks\HorizonCheck; -use Spatie\Health\Checks\Checks\RedisCheck; -use Spatie\Health\Checks\Checks\RedisMemoryUsageCheck; use Spatie\Health\Checks\Checks\UsedDiskSpaceCheck; use Spatie\Health\Facades\Health; use Spatie\SecurityAdvisoriesHealthCheck\SecurityAdvisoriesCheck; @@ -43,9 +40,6 @@ public function boot(): void ->failWhenMoreConnectionsThan(100), DebugModeCheck::new(), EnvironmentCheck::new(), - RedisCheck::new(), - RedisMemoryUsageCheck::new(), - HorizonCheck::new(), SecurityAdvisoriesCheck::new(), ]); diff --git a/app/Providers/HorizonServiceProvider.php b/app/Providers/HorizonServiceProvider.php deleted file mode 100644 index 2519f5c..0000000 --- a/app/Providers/HorizonServiceProvider.php +++ /dev/null @@ -1,18 +0,0 @@ -hasRole(Role::SUPER_ADMIN->value); - }); - } -} diff --git a/bootstrap/providers.php b/bootstrap/providers.php index 5702a79..0842610 100644 --- a/bootstrap/providers.php +++ b/bootstrap/providers.php @@ -4,5 +4,4 @@ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\Filament\AdminPanelProvider::class, - App\Providers\HorizonServiceProvider::class, ]; diff --git a/composer.json b/composer.json index 1bc64e4..f21e5de 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,6 @@ "filament/filament": "^3.2", "inertiajs/inertia-laravel": "^2.0", "laravel/framework": "^11.17", - "laravel/horizon": "^5.26", "laravel/pulse": "^1.2", "laravel/sanctum": "^4.0", "laravel/tinker": "^2.9", @@ -54,7 +53,6 @@ ], "build:prod": [ "composer install --no-interaction --prefer-dist --optimize-autoloader", - "@php artisan horizon:terminate", "@php artisan migrate --force", "@php artisan optimize:clear", "@php artisan optimize", diff --git a/composer.lock b/composer.lock index a6dc39a..a728712 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6ee96c087fc48178d044ffe4ca6dd33b", + "content-hash": "86275a2197cddd869b78d87325d40492", "packages": [ { "name": "althinect/filament-spatie-roles-permissions", @@ -2568,86 +2568,6 @@ }, "time": "2025-03-05T15:34:10+00:00" }, - { - "name": "laravel/horizon", - "version": "v5.30.3", - "source": { - "type": "git", - "url": "https://github.com/laravel/horizon.git", - "reference": "7b9ee870bf0e425b956fd0433f616f98fe951f72" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/7b9ee870bf0e425b956fd0433f616f98fe951f72", - "reference": "7b9ee870bf0e425b956fd0433f616f98fe951f72", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcntl": "*", - "ext-posix": "*", - "illuminate/contracts": "^9.21|^10.0|^11.0|^12.0", - "illuminate/queue": "^9.21|^10.0|^11.0|^12.0", - "illuminate/support": "^9.21|^10.0|^11.0|^12.0", - "nesbot/carbon": "^2.17|^3.0", - "php": "^8.0", - "ramsey/uuid": "^4.0", - "symfony/console": "^6.0|^7.0", - "symfony/error-handler": "^6.0|^7.0", - "symfony/polyfill-php83": "^1.28", - "symfony/process": "^6.0|^7.0" - }, - "require-dev": { - "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", - "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.0|^10.4|^11.5", - "predis/predis": "^1.1|^2.0" - }, - "suggest": { - "ext-redis": "Required to use the Redis PHP driver.", - "predis/predis": "Required when not using the Redis PHP driver (^1.1|^2.0)." - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "Horizon": "Laravel\\Horizon\\Horizon" - }, - "providers": [ - "Laravel\\Horizon\\HorizonServiceProvider" - ] - }, - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Laravel\\Horizon\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Dashboard and code-driven configuration for Laravel queues.", - "keywords": [ - "laravel", - "queue" - ], - "support": { - "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.30.3" - }, - "time": "2025-02-11T13:52:50+00:00" - }, { "name": "laravel/prompts", "version": "v0.3.5", @@ -13262,12 +13182,12 @@ ], "aliases": [], "minimum-stability": "beta", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": "^8.2" }, - "platform-dev": [], - "plugin-api-version": "2.3.0" + "platform-dev": {}, + "plugin-api-version": "2.6.0" } diff --git a/config/horizon.php b/config/horizon.php deleted file mode 100644 index b890a4a..0000000 --- a/config/horizon.php +++ /dev/null @@ -1,225 +0,0 @@ - env('HORIZON_DOMAIN'), - - /* - |-------------------------------------------------------------------------- - | Horizon Path - |-------------------------------------------------------------------------- - | - | This is the URI path where Horizon will be accessible from. Feel free - | to change this path to anything you like. Note that the URI will not - | affect the paths of its internal API that aren't exposed to users. - | - */ - - 'path' => env('HORIZON_PATH', 'horizon'), - - /* - |-------------------------------------------------------------------------- - | Horizon Redis Connection - |-------------------------------------------------------------------------- - | - | This is the name of the Redis connection where Horizon will store the - | meta information required for it to function. It includes the list - | of supervisors, failed jobs, job metrics, and other information. - | - */ - - 'use' => 'default', - - /* - |-------------------------------------------------------------------------- - | Horizon Redis Prefix - |-------------------------------------------------------------------------- - | - | This prefix will be used when storing all Horizon data in Redis. You - | may modify the prefix when you are running multiple installations - | of Horizon on the same server so that they don't have problems. - | - */ - - 'prefix' => env( - 'HORIZON_PREFIX', - Str::slug(env('APP_NAME', 'laravel'), '_').'_horizon:' - ), - - /* - |-------------------------------------------------------------------------- - | Horizon Route Middleware - |-------------------------------------------------------------------------- - | - | These middleware will get attached onto each Horizon route, giving you - | the chance to add your own middleware to this list or change any of - | the existing middleware. Or, you can simply stick with this list. - | - */ - - 'middleware' => ['web'], - - /* - |-------------------------------------------------------------------------- - | Queue Wait Time Thresholds - |-------------------------------------------------------------------------- - | - | This option allows you to configure when the LongWaitDetected event - | will be fired. Every connection / queue combination may have its - | own, unique threshold (in seconds) before this event is fired. - | - */ - - 'waits' => [ - 'redis:default' => 60, - ], - - /* - |-------------------------------------------------------------------------- - | Job Trimming Times - |-------------------------------------------------------------------------- - | - | Here you can configure for how long (in minutes) you desire Horizon to - | persist the recent and failed jobs. Typically, recent jobs are kept - | for one hour while all failed jobs are stored for an entire week. - | - */ - - // 129600 = 90 days - - 'trim' => [ - 'recent' => 129600, - 'pending' => 129600, - 'completed' => 129600, - 'recent_failed' => 129600, - 'failed' => 129600, - 'monitored' => 129600, - ], - - /* - |-------------------------------------------------------------------------- - | Silenced Jobs - |-------------------------------------------------------------------------- - | - | Silencing a job will instruct Horizon to not place the job in the list - | of completed jobs within the Horizon dashboard. This setting may be - | used to fully remove any noisy jobs from the completed jobs list. - | - */ - - 'silenced' => [ - // App\Jobs\ExampleJob::class, - ], - - /* - |-------------------------------------------------------------------------- - | Metrics - |-------------------------------------------------------------------------- - | - | Here you can configure how many snapshots should be kept to display in - | the metrics graph. This will get used in combination with Horizon's - | `horizon:snapshot` schedule to define how long to retain metrics. - | - */ - - 'metrics' => [ - 'trim_snapshots' => [ - 'job' => 24, - 'queue' => 24, - ], - ], - - /* - |-------------------------------------------------------------------------- - | Fast Termination - |-------------------------------------------------------------------------- - | - | When this option is enabled, Horizon's "terminate" command will not - | wait on all of the workers to terminate unless the --wait option - | is provided. Fast termination can shorten deployment delay by - | allowing a new instance of Horizon to start while the last - | instance will continue to terminate each of its workers. - | - */ - - 'fast_termination' => false, - - /* - |-------------------------------------------------------------------------- - | Memory Limit (MB) - |-------------------------------------------------------------------------- - | - | This value describes the maximum amount of memory the Horizon master - | supervisor may consume before it is terminated and restarted. For - | configuring these limits on your workers, see the next section. - | - */ - - 'memory_limit' => 64, - - /* - |-------------------------------------------------------------------------- - | Queue Worker Configuration - |-------------------------------------------------------------------------- - | - | Here you may define the queue worker settings used by your application - | in all environments. These supervisors and settings handle all your - | queued jobs and will be provisioned by Horizon during deployment. - | - */ - - 'defaults' => [ - 'supervisor-1' => [ - 'connection' => 'redis', - 'queue' => Queue::values()->toArray(), - 'balance' => 'auto', - 'autoScalingStrategy' => 'time', - 'maxProcesses' => 1, - 'maxTime' => 0, - 'maxJobs' => 0, - 'memory' => 128, - 'tries' => 1, - 'timeout' => 60, - 'nice' => 0, - ], - ], - - 'environments' => [ - Environment::PRODUCTION->value => [ - 'supervisor-1' => [ - 'maxProcesses' => 10, - 'balanceMaxShift' => 1, - 'balanceCooldown' => 3, - ], - ], - - Environment::STAGING->value => [ - 'supervisor-1' => [ - 'maxProcesses' => 5, - 'balanceMaxShift' => 1, - 'balanceCooldown' => 3, - ], - ], - - Environment::LOCAL->value => [ - 'supervisor-1' => [ - 'maxProcesses' => 3, - ], - ], - ], -]; diff --git a/phpunit.xml b/phpunit.xml index cd5de4a..848e3da 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -19,7 +19,6 @@ ./app/Filament ./app/Providers/Filament - ./app/Providers/HorizonServiceProvider.php ./app/Providers/TelescopeServiceProvider.php diff --git a/routes/console.php b/routes/console.php index c0bfe3d..252701c 100644 --- a/routes/console.php +++ b/routes/console.php @@ -3,5 +3,4 @@ use App\Enums\Environment; use Illuminate\Support\Facades\Schedule; -Schedule::command('horizon:snapshot')->everyFiveMinutes(); Schedule::command(\Spatie\Health\Commands\RunHealthChecksCommand::class)->everyMinute()->environments(Environment::PRODUCTION->value);