Üzerinde çalıştığım API'de, bir dizi kimliği kabul eden bir toplu silme işlemi var:
["1000", ..., "2000"]
Uygun gördüğümde silme işlemini uygulamakta özgürdüm, bu yüzden her şeyi işlem yapmaya karar verdim: yani, tek bir kimlik geçersizse, tüm istek başarısız olur. Buna katı mod diyeceğim .
try{
savepoint = conn.setSavepoint();
for(id : IDs)
if( !deleteItem(id) ){
conn.rollback(savepoint);
sendHttp400AndBeDoneWithIt();
return;
}
conn.commit();
}
Alternatif (yazılım paketimizin başka bir yerinde uygulanır) arka uçta elimizden geleni yapmak ve bir dizideki hataları bildirmektir. Yazılımın bu kısmı daha az istekle ilgilenir, böylece yanıt teoride dev bir dizi haline gelmez.
Kaynak yetersiz bir sunucuda son zamanlarda meydana gelen bir hata beni tekrar koda bakmamı sağladı ve şimdi orijinal kararımı sorguluyorum - ama bu sefer en iyi uygulamalardan ziyade iş ihtiyaçlarına göre motive oldum. Örneğin, tüm isteği başarısız olursa, kullanıcı tekrar denemek zorunda kalacak, oysa birkaç öğe silinirse, kullanıcı eylemi bitirebilir ve daha sonra bir yöneticiden geri kalanını yapmasını isteyebilir (hatayı düzeltmeye çalışırken) !). Bu izin veren mod olurdu .
Bu konuda bazı rehberlik için çevrimiçi bakmaya çalıştım ama boş teslim oldum. Size geliyorum: Bu nitelikteki toplu operasyonlardan en çok ne bekleniyor? Daha fazla sıkıya bağlı kalmalı mıyım yoksa daha fazla müsaade etmeli miyim?