PHPどうもこんにちはメール送信処理を非同期的に送信したかったので、LaravelのQueueと、プロセス監視にSupervisorを使いました。ま、先人たちがすでにさんざんやっておられる、アレです。それぞれにわかりやすく執筆されている方はいらっしゃいますが両方をまとめて1記事にされているものが少なかったので、備忘録をかねて。Laravelのバージョンは5.8、EC2にSupervisorをインストールして動作させてみます。documentationLaravelのあれこれ.envファイル今回はデータベースドライバを使いました。EC2だったらSQSを使えばいいんじゃねーのっていう声は聞こえません。.envファイルを編集します。QUEUE_CONNECTION=database1QUEUE_CONNECTION=databaseconfig/queue.phpについては、特に触りませんでした。Migrateキュー管理用テーブルのmigrateです。公式がきちんと用意してくれています。キュー処理が失敗した時用のテーブルも一緒に作ります。migrateメール送信処理メール送信処理をすこーし変えます。今回はメールファサードで送っているので、Mail::sendをMail::queueに変えて回るだけです。MyMailSender);にしました。実際に動かすと、jobsテーブルにレコードが追加されます。※キューワーカーを起動していないと、たまる一方なのは当たり前。MyMailSenderで作ったメール送信クラスを使っています。MyJobProcessorのようにJobクラスを作って、MyJobProcessor::dispatch();1MyJobProcessor::dispatch();でキューに放り込むようです。dispatchメソッドの引数はMyJocProcessorのコンストラクタの引数だそうです。へーSupervisorSupervisorをEC2にインストールしてみます。念のため、ですがこんな環境です。supervisorで入れてしまいました。