技術記事やフリーランス記事をメインに情報公開をしています。是非見ていってください。

  1. バックエンド

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

25歳。 Twitter:りリー@ryudoi1 フリーランスとして働きながら、WINDII(ウィンディ)ではテックメディア事業や、受託事業を行なっています! フリーランスになるまでの過程は こちら

関連記事

コメント

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

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