スポンサーリンク
Laravel の キューで、途中でディスパッチ先を変更したいんですけど、できますか?
ディスパッチするときにドライバを指定してあげればできるよ
Laravel の Queue は管理サービスとして sync , database , Amazon SQS などいくつかのものが使用できます。
通常は Config でサービスを定義して、.env で Queue に使用するサービスを指定するのですが、デフォルト(.env で指定しているもの)は sync なんだけど、このジョブだけ database にしたい、なんてことがありました。
レアケースだとは思いますが、実際そうしないと動かせない処理がありました。
そういった場合のコーディングは
1 |
SomeJob::dispatch($param)->onConnection('database'); |
のようにディスパッチのあと、onConnectionメソッドでドライバを指定してあげればOKです。
ワーカーの起動は
php artisan queue:work database
のように、ドライバー名を指定して起動します
スポンサーリンク
スポンサーリンク