CodeBlanks Logo Icon CodeBlanks

Retry queue

Retry queue ve backoff öğrenirsin.

Yeniden deneme kuyruğu

Bir ağ isteği başarısız olursa, isteği bir kuyruğa yazıp daha sonra tekrar denemek yaygın bir kalıptır. Bu kuyruğa retry queue denir. Her öğe bir istek nesnesi taşır; çevrimiçi olunca kuyruktaki her öğe sırayla denenir.

Başarısız olan öğeler kuyrukta kalır; bir sonraki denemede tekrar denenir. Başarılı olanlar kuyruktan kaldırılır. Bu kalıp, geçici ağ hatalarına karşı dayanıklılık verir. Kuyruk AsyncStorage ile kalıcı yapılabilir; uygulama kapansa bile kuyruk kaybolmaz. Kuyruğun boyutu sınırlı tutulur; çok eski öğeler atılır.

Kuyruk işleme

Kuyruğu işlemek için her öğeyi sırayla alır, ağ isteğini dener. Başarılı olursa öğeyi kuyruktan kaldırırsın; başarısız olursa öğe kuyrukta kalır. Bu işlemi while (queue.length > 0) döngüsüyle yaparsın.

Örnek: const item = queue[0]; try { await sendRequest(item); queue.shift(); } catch (e) { break; }. shift() dizinin ilk öğesini kaldırır. Hata olursa break ile döngüden çıkılır; başka bir öğe denenmez. Bu, bir hata durumunda kuyruğun geri kalanını korur. Kuyruk boşalınca senkronizasyon tamamlanır.

Uygulama Kuyruğu işle

processQueue işlevini tamamla. while (queue.length > 0) döngüsü kur. Döngü içinde const item = queue[0] al; await sendRequest(item) çağır; başarılı olursa queue.shift() ile kaldır. Hata olursa break. queue ve sendRequest parametre olarak verilir.

Başlangıç kodu

App.js
export async function processQueue(queue, sendRequest) {
  // kuyruğu sırayla işle
}

Örnek çözüm

App.js
while (queue.length > 0) {
  const item = queue[0];
  try {
    await sendRequest(item);
    queue.shift();
  } catch (e) {
    break;
  }
}

Soru ve cevaplar

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

1 Kuyruğa ekleme işlevini yaz

Soru
queue.____(request);
Cevap
queue.push(request);

Açıklama: push öğeyi kuyruğa ekler.

2 Başarılı bir istek kuyruktan nasıl kaldırılır?

App.js
await sendRequest(item); queue.???();
  • pop
  • shift Doğru cevap
  • remove
  • delete

Açıklama: shift ilk öğeyi kaldırır.

3 Yöntemi amacına eşle

Kavram Anlamı
push Kuyruğa ekler
shift İlk öğeyi kaldırır
length Kuyruk boyutu
while Döngü kurar

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