Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Laravel - Menjalankan Pekerjaan dalam Urutan

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jika pekerja seledri mati, apakah pekerjaan akan dicoba lagi?

  2. blpop berhenti memproses antrian setelah beberapa saat

  3. Bagaimana saya bisa mengonversi satu byte ke seluruh string hex?

  4. Predis memberikan 'Kesalahan saat membaca baris dari server'

  5. Bagaimana cara mengatur/mendapatkan pandas.DataFrame ke/dari Redis?