Retry queue
- React Native kursu
- İleri seviye
- Ders 35/83
- 5 dk
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
export async function processQueue(queue, sendRequest) {
// kuyruğu sırayla işle
}Örnek çözüm
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
queue.____(request);
queue.push(request);
Açıklama: push öğeyi kuyruğa ekler.
2 Başarılı bir istek kuyruktan nasıl kaldırılır?
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 |