Laravel Horizon の使用とデフォルトのキューワーカーの主な違いは次のとおりです。
1. 構成管理:
- デフォルトのキュー ワーカー: キュー ワーカーの設定は、`queue.php` 設定ファイルや `queue:work` コマンド オプションなど、複数の場所に分散されています。
- Laravel Horizon: すべてのキューワーカー設定は `config/horizon.php` ファイルに集中されているため、管理とバージョン管理が容易になります。
2. 監視と指標:
- デフォルトのキュー ワーカー: デフォルトのキュー ワーカーには、組み込みの監視またはメトリクス ダッシュボードがありません。キューの状態を監視するには、外部ツールまたはカスタム ログを利用する必要があります。
- Laravel Horizon: Horizon は、ジョブのスループット、実行時間、失敗など、キュー システムに関する詳細なメトリクスを表示する美しいダッシュボードを提供します。
3. 戦略のバランスをとる:
- デフォルトのキュー ワーカー: デフォルトのキュー ワーカーは、キューに追加された順序でジョブを処理します。
- Laravel Horizon: Horizon は、ワーカー プロセス間でジョブをより効率的に分散できる 3 つのバランス戦略 (「simple」、「auto」、および「false」) を提供します。
4. 自動スケーリング:
- デフォルトのキュー ワーカー: 実行中のキュー ワーカー プロセスの数を手動で管理する必要があります。
- Laravel Horizon: Horizon は、「自動」バランシング戦略を使用して、キューの現在のワークロードに基づいてワーカー プロセスの数を自動的にスケールできます。
5. スーパーバイザーの統合:
- デフォルトのキュー ワーカー: キュー ワーカー プロセスが継続的に実行されるようにするには、スーパーバイザーなどのプロセス マネージャーを手動で設定する必要があります。
- Laravel Horizon: Horizon はすぐに使える Supervisor と統合されており、キュー ワーカー プロセスの管理が容易になります。
6. ジョブの再試行と失敗の処理:
- デフォルト キュー ワーカー: ジョブの再試行と失敗を処理するにはカスタム ロジックを実装する必要があります。
- Laravel Horizon: Horizon は、失敗したジョブを表示および管理する機能を含む、ジョブの再試行と失敗処理の組み込みサポートを提供します。
要約すると、Laravel Horizon は、デフォルトのキューワーカーでは利用できない監視、自動スケーリング、高度な構成オプションなどの機能を備えた、アプリケーションのキュー システムを管理するためのより包括的で集中化されたソリューションを提供します。
引用:[1] https://divinglaravel.com/introduction-to-how-laravel-horizon-works
[2] https://www.honeybadger.io/blog/laravel-queues-deep-dive/
[3] https://dev.to/devlopez/unleashing-the-power-of-laravel-horizon-16g9
[4] https://laracasts.com/discuss/channels/laravel/laravel-horizon-queue-worker-configuration
[5] https://laravel.com/docs/11.x/horizon