0Pricing
PHP Academy · レッスン

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 migrate

Horizonの起動

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 dashboard

Horizonでの失敗したジョブ

失敗したジョブを、例外やスタックトレースとともに確認できます。個々の失敗したジョブは、ダッシュボードから直接、または Artisan を使って再試行できます。

$ php artisan horizon:forget <uuid>
$ php artisan horizon:retry-failed

Supervisorによる本番環境での実行

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. キューの概念とドライバー
  2. ジョブの作成とディスパッチ
  3. ジョブのリトライ、遅延、チェーン
  4. Laravel Horizonでキューを監視する
← PHP Academyに戻る