Laravelで時間がかかる処理を非同期で実行したい場合

Laravelを使っていて、例えば時間がかかるような処理を非同期で行いたいことがあります。

例えば、ブラウザからリクエストを受け付けて、そのリクエストに応じてデータを作るような処理を考えます。

このデータを作る処理は数分かかることを想定しているので、リクエストを正しく受け付けたことだけは即時にブラウザにレスポンスで返し、別途データを作る処理はバックグランドで実行します。

このときに便利なのは、イベント&リスナーと、キューイング機能です。

イベント&リスナーについてはこちらに記載されています。

これだけだと、非同期では実行されないので、キューイングを使います。キューイングについては同ページの「キュー投入するイベントリスナ」に書かれています。

イベント&リスナーを使うとContorollerもスッキリしますし、良さそうです。