PCS開発チーム

PCS開発チーム

php artisan queue:workコマンドの一般的な使い方と簡易的な使い方

一般的な使い方

VPSやAWS EC2などの普通のサーバーの場合はSupervisorなどを使ってqueue:workコマンドをデーモンとして常時稼働し続ける。

php artisan queue:work

デプロイ時の再起動などを考慮する必要があるので実際に使うのは結構手間。
Supervisorで自動的に再起動するように設定した上でデプロイ時にはqueue:restartコマンドで終了。

簡易的な使い方

Supervisorが使えない場合の簡単な方法はタスクスケジュールでqueue:work --onceコマンドを定期的に実行。

php artisan queue:work --once

--onceを付けると一つのジョブだけ実行してすぐ終了するのでタスクスケジュールでも実行できる。
ただしタスクスケジュールの頻度でしか実行されないので一般的な使い方より遅い。

https://laracasts.com/discuss/channels/laravel/schedule-artisan-command-doesnt-execute-command

この辺もいずれは「Laravel Cloud使えばいい」と回答することになりそう。

上級編1

ベテラン勢はそもそもqueue:workを使わずLaravel Horizonを使う。
Forgeならqueue:workでもHorizonでも簡単に導入できる。

上級編2

Laravel Vaporのキューはここまでのどれでもない使い方。