🐱
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