あなたがあなたの質問で述べているように、あなたが探しているのはジョブチェーンです。
Laravelドキュメントから
ジョブチェーンを使用すると、順番に実行する必要があるキューに入れられたジョブのリストを指定できます。シーケンス内の1つのジョブが失敗した場合、残りのジョブは実行されません。キューに入れられたジョブチェーンを実行するには、ディスパッチ可能なジョブのいずれかでwithChainメソッドを使用できます。
ProcessPodcast::withChain([ new OptimizePodcast, new ReleasePodcast ])->dispatch();
したがって、上記の例では
$mailJobs = Subscriptions::all()
->map(function($subscription) {
return new SendMailJob($subscription);
});
Job::withChain($mailJobs)->dispatch()
期待どおりの結果が得られるはずです!
更新
最初のジョブを使用してチェーンを作成したくない場合(上記のドキュメントの例に示されているように)、空のJob
を作成できるはずです。 use Dispatchable;
を持つクラス 。次に、上記の私の例を使用できます