Laravel Horizonでキューを監視する
Horizonをインストールし、キューの処理量と失敗したジョブを確認します
「Laravel Horizonでキューを監視する」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
Horizonとは
Laravel Horizonは、Redisをバックエンドとするキュー向けに、美しいダッシュボードと設定システムを提供します。リアルタイムメトリクス、スループットの追跡、ジョブの監視が可能です。
Horizonのインストール
Composerでインストールし、アセットを公開します。
$ composer require laravel/horizon
$ php artisan horizon:install
$ php artisan migrateHorizonの起動
Horizonを1つの長時間稼働プロセスとして起動します(queue:workの代わりになります)。
$ php artisan horizonダッシュボードへのアクセス
Horizonダッシュボードはデフォルトで/horizonから利用できます。本番環境では、認可されたユーザーだけがアクセスできるようGateで制限してください。
<?php
// In HorizonServiceProvider:
Horizon::auth(function ($request) {
return $request->user()?->isAdmin() ?? false;
});horizon.phpの設定
config/horizon.phpで、ワーカー(環境、スーパーバイザー、キューの優先順位、ワーカー数)を設定します。
// config/horizon.php
"environments" => [
"production" => [
"supervisor-1" => [
"connection" => "redis",
"queue" => ["emails", "default"],
"processes" => 10,
"balance" => "auto",
]
]
]スーパーバイザーとバランシング
Horizonのスーパーバイザーはワーカーのプールを管理します。"balance" => "auto"を指定すると、Horizonがキューの深さに応じてワーカー数を自動的にスケールします。
メトリクスダッシュボード
Horizonのダッシュボードには、1分あたりのジョブ数、失敗したジョブ、待ち時間、最近のジョブ、キューごとの統計情報が表示されます。
ジョブへのタグ付け
ジョブにタグを付けると、ダッシュボードでの監視やフィルタリングが容易になります。
<?php
public function tags(): array
{
return ["user:".$this->user->id, "email"];
}
// Then filter by tag in the Horizon dashboardHorizonでの失敗したジョブ
失敗したジョブを、例外やスタックトレースとともに確認できます。個々の失敗したジョブは、ダッシュボードから直接、または Artisan を使って再試行できます。
$ php artisan horizon:forget <uuid>
$ php artisan horizon:retry-failedSupervisorによる本番環境での実行
Linux Supervisorを使用してHorizonプロセスを実行し続け、クラッシュした場合は再起動します。
[program:horizon]
command=php /srv/app/artisan horizon
autorestart=true
stdout_logfile=/var/log/horizon.log一時停止と再開
デプロイ中はHorizonを一時停止してキューを安全に処理し終え、その後再開します。
$ php artisan horizon:pause
$ php artisan horizon:continue
$ php artisan horizon:terminateまとめ
Horizonは、キューワーカーを1つのプロセスと使いやすいダッシュボードに置き換えます。config/horizon.phpでワーカー数を設定します。本番環境ではSupervisorを使用してHorizonを稼働させ続けます。
理解度チェック
Laravel Horizonを起動するコマンドはどれですか?
よくある質問
「Laravel Horizonでキューを監視する」レッスンは無料ですか?
はい。「Laravel Horizonでキューを監視する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「Laravel Horizonでキューを監視する」で何を学びますか?
Horizonをインストールし、キューの処理量と失敗したジョブを確認します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Laravel Horizonでキューを監視する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- キューの概念とドライバー
- ジョブの作成とディスパッチ
- ジョブのリトライ、遅延、チェーン
- Laravel Horizonでキューを監視する