🐱

UbuntuでSupervisorを使ってLaravelのキューを常時起動させる

に公開

こんにちは、はるです。

副業で行っている保守案件で、ユーザー登録時にメールを送信の遅延が発生しているとお客様から指摘がありました。

特にエラーは出ていないため、たまたまjobが動いていなかったと推測。

そこで、Supervisorを使ってLaravelのキューを常時起動させることにしました。
メモを残します。

インストール

sudo apt update
sudo apt install supervisor

編集

sudo vi /etc/supervisor/conf.d/laravel-worker.conf

今回はDockerの中にPHPがインストールされていたため、phpのパスをDockerのものにしています。ここで詰まりました。

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/docker exec -i コンテナ名 php artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=ユーザー名(whoamiで出るもの)
numprocs=1
redirect_stderr=true
stdout_logfile=/プロジェクトパス/storage/logs/worker.log

動かす

特にエラーが出なければOK

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*

ステータス確認

sudo supervisorctl status

下記のように出ればOK
laravel-worker:laravel-worker_00 RUNNING pid 2277561, uptime 0:00:21

自動起動設定

サーバーが再起動しても、起動するように設定

sudo systemctl enable supervisor

以上です!

Discussion