CodeBlanks Logo Icon CodeBlanks

Özet - Message queue

Producer, consumer ve retry'ı birleştirerek bir arka plan iş sistemi yazarsın.

Özet - Message queue

Bu grupta Bull ile mesaj kuyruğu kurmayı öğrendin: new Bull("isim") ile kuyruk oluşturmak, queue.add ile producer yazmak, queue.process ile consumer tanımlamak ve attempts/backoff ile retry ayarlamak.

Şimdi bunları birleştirip küçük bir e-posta kuyruğu iskeleti kuracaksın. İskelet bir kuyruk oluşturacak, mesaj ekleyecek ve bir consumer tanımlayacak. Bu mini görev, kuyruk araçlarının nasıl birleştiğini gösterir.

E-posta kuyruğu tasarımı

Bir e-posta kuyruğunun iskeleti şöyledir: new Bull("email") ile kuyruk, queue.add ile mesaj, queue.process ile consumer. Retry ve backoff da eklenir.

Akış: const kuyruk = new Bull("email"); kuyruk.add({ alici: "ayse@x.com" }, { attempts: 3, backoff: 1000 }); kuyruk.process(async (job) => { console.log("Gönderildi: " + job.data.alici); });. Mesaj kuyruğa eklenir; consumer mesajı alıp e-postayı gönderir. Hata olursa 3 kez denenir. Bu iskeletin üzerine önceliklendirme, zamanlama ve ölü mesaj kuyruğu (DLQ) eklenebilir. Bull, tüm bunları basit bir API ile yönetir.

Uygulama E-posta kuyruğu iskeletini kur

bull içe aktar ve kuyruk = new Bull("email") oluştur. kuyruk.process(async (job) => { console.log("Gönderildi: " + job.data.alici); }) ile consumer tanımla. console.log ile "Kuyruk sistemi hazır" yaz.

Başlangıç kodu

index.js
// bull içe aktar, kuyruk oluştur ve consumer tanımla
// buraya yaz

// "Kuyruk sistemi hazır" yazdır
// buraya yaz

Örnek çözüm

index.js
const Bull = require("bull");
const kuyruk = new Bull("email");
kuyruk.process(async (job) => {
  console.log("Gönderildi: " + job.data.alici);
});
console.log("Kuyruk sistemi hazır");

Beklenen çıktı

Kuyruk sistemi hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kuyruk iskeleti hangi parçaları birleştirir?

index.js
new Bull + add + process
  • Yalnızca require
  • Yalnızca console.log
  • Yalnızca attempts
  • Bull, add, process ve backoff Doğru cevap

Açıklama: Bull + add + process + backoff birleşir.

2 Aracı rolüne eşle

Kavram Anlamı
new Bull Kuyruk oluşturur
queue.add Mesaj ekler
queue.process Consumer tanımlar
backoff Deneme arası bekler

İleri seviye bölümündeki tüm dersler