現役フリーランスエンジニアが運営するテックメディア。日々の業務で得た知識を発信していきます!

  1. バックエンド
  2. 1205 view

Laravel HorizonでQueue/Jobを眺める

最終更新日:2018/12/08

はじめに

本記事ではLaravel Horizonを用いてQueue/Jobを可視化して開発効率を高める方法をご紹介します。

Laravel Horizonとは

Laravel Horizonとは、Laravelで動作するRedisキューのために作られた、Queueの監視ツールです。Laravel Horizonを使うとジョブのスループットやランタイム、実行の失敗など、キューシステムをわかりやすく簡単に監視することができます。

Laravel Horizonを動かすサンプルソースコード

こちらに本記事のサンプルコードを用意いたしました。わからないところや気になるところがあればぜひご覧ください。

Laravelプロジェクトのセットアップ

本記事は、https://github.com/windii-legend/laravel-supervisor-exampleのプロジェクトを元に進めていきます。こちらのプロジェクトはRedisキューで動作するように設定したサンプルプロジェクトです。こちらの構成については以下の記事にまとめてあるので未読の方はぜひご一読ください!

以下の手順にしたがって、まずはプロジェクトを立ち上げます。

git clone https://github.com/windii-legend/laravel-supervisor-example.git
cd laravel-supervisor-example
docker-compose up -d --build
docker-compose exec app bash ./docker/setup.sh

http://localhost:8000 にアクセスしてみましょう。

こんな画面が表示されるはずです!

以上でプロジェクトのセットアップは終わりです。

Laravel Horizonを導入する

それでは早速Laravel Horizonを導入していきます。

Laravel Horizonのインストール

以下のコマンドでLaravel Horizonをインストールします。

# dockerコンテナに入る
docker-compose exec app bash

cd my-laravel-app

# Composerを使ってLaravel Horizonのインストール

composer require laravel/horizon

Laravel Horizonを立ち上げるにはpcntlを有効化する必要があります。

本プロジェクトでもdocker/php/Dockerfile内に

RUN docker-php-ext-install pcntl

が入っています。以上余談でした^^

Horizonがインストールできたら、次に horizon:install Artisan コマンドを使用して、アセットを公開します。

php artisan horizon:install

失敗したキュー済みのジョブを保存するために使用する、failed_jobsのテーブルを生成しておきましょう。

php artisan queue:failed-table

php artisan migrate

以下の出力がされれば成功です!

Migrating: 2018_12_08_130446_create_failed_jobs_table
Migrated:  2018_12_08_130446_create_failed_jobs_table

この状態でhttp://localhost:8000/horizon にアクセスしてみましょう。以下のような画面が常時されるはずです。

Laravel Horizonの起動

それではLaravel Horizonを起動してみましょう。

php artisan horizon

Horizon started successfully.

この状態で再びhttp://localhost:8000/horizon にアクセスしてみましょう。ステータスがActive になっています!

これでLaravel HorizonによってQueueを監視できるようになりました。美しいダッシュボードでQueueを可視化することで開発効率が格段に上がると思うのでぜひHorizonを導入してみましょう〜。それでは〜?

The following two tabs change content below.
riri

riri

WINDII(ウィンディ)は、フリーランスエンジニアが運営するテックメディアです。 日々の業務で得た知見を、皆さんに役立つコンテンツにして発信していくので応援よろしくお願いします! また、Slackで無料コミュニティも運営しています。たくさんのエンジニアが参加していて、プログラミングの相談や雑談などをしている楽しいコミュニティなので、興味ある方はぜひお気軽にご参加ください。 Slackコミュニティはこちらから

バックエンドの最近記事

  1. 人気急上昇中のLaravelをはじめよう!【徹底解説】

  2. Laravelの認可を理解して実装してみよう!

  3. Laravelのシーティング(Seeding)機能をマスターしよう!

  4. Laravelのメール確認機能を設定してみよう!

  5. Laravelの認証機能を設定してみよう!

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP