Apa yang Anda cari, seperti yang Anda sebutkan dalam pertanyaan Anda, adalah rantai pekerjaan.
Dari dokumen Laravel
Rantai pekerjaan memungkinkan Anda menentukan daftar pekerjaan dalam antrian yang harus dijalankan secara berurutan. Jika satu pekerjaan dalam urutan gagal, pekerjaan lainnya tidak akan dijalankan. Untuk menjalankan rantai pekerjaan yang diantrekan, Anda dapat menggunakan metode withChain pada salah satu pekerjaan yang dapat dikirim:
ProcessPodcast::withChain([ new OptimizePodcast, new ReleasePodcast ])->dispatch();
Jadi dalam contoh Anda di atas
$mailJobs = Subscriptions::all()
->map(function($subscription) {
return new SendMailJob($subscription);
});
Job::withChain($mailJobs)->dispatch()
Harus memberikan hasil yang diharapkan!
Perbarui
Jika Anda tidak ingin menggunakan tugas awal untuk dirangkai (seperti yang ditunjukkan pada contoh dokumentasi di atas), Anda harus dapat membuat Job
kosong kelas yang memiliki use Dispatchable;
. Kemudian Anda dapat menggunakan contoh saya di atas