Artımlı senkronizasyon, sayfanın yarısında durabilmeli ve kanıt kaybetmeden yeniden başlayabilmelidir. Zor durum ilk başarılı indirme değil. Depolamadan sonraki zaman aşımı, yeniden başlatmanın ardından mükerrer teslimat ve görünen raporlama döneminin sona ermesinden sonra gelen rapordur.
Kimlik birimini tanımlayın
Sağlayıcının belgelenmiş rapor kimliğini kullanın ve kiracı ve raporlayıcı bağlamını koruyun. Rapor kimliklerinin müşteriler veya kaynaklar genelinde küresel olarak benzersiz olduğu varsayılmamalıdır. Kimliğin yanında bir kaynak yükü parmak izini saklayın. Aynı tekrar, kopya olarak değerlendirilebilir; farklı baytlara sahip aynı kimlik, belgelenmiş bir revizyon modeli aracılığıyla araştırılmalı veya ele alınmalıdır.
RFC 9990 yapısını ve anlambilimini sağlar toplu raporlar. Orijinal raporlama dönemlerini ve teslim alma sürelerini ayrı ayrı koruyun. Bir koleksiyoncunun artan filigranı, geçmiş bir değerlendirme dönemini varış zaman damgası olarak sessizce yeniden yorumlamamalıdır.
Verileri kaydedin ve birlikte ilerleyin
Sınırlandırılmış bir sayfayı getirin, kapsamı ve şemayı doğrulayın, normalleştirilmiş verileri kaynağıyla birlikte yazın ve ancak bundan sonra kontrol noktasına ilerleyin. Verileri taahhüt eden ve atomik olarak ilerleyen bir işlemi tercih edin. Bu mümkün değilse, kararlı benzersizlik kısıtlamasıyla tekrar oynatılacak şekilde tasarım yapın. Kayıtlar kalıcı hale gelmeden önce kaydedilen bir imleç, bir kayıp penceresi oluşturur.
Bir koleksiyoncunun birinci sayfayı kalıcı olarak sakladığını ancak ilerleme işaretçisini ilerletmeden önce çöktüğünü varsayalım. Yeniden başlatıldığında sayfayı tekrar getirebilir. Uygun şekilde kapsamlandırılmış bir kararlı kimlik kısıtlaması, bir sonraki sayfanın kaydedilmesine izin verirken tam tekrarların eklenmesinden kaçınmalıdır. İlerleme göstergesi, kayıtlar kalıcı hale gelmeden önce ilerlemiş olsaydı, yeniden başlatma, kanıtları tamamen atlayabilirdi. Bunlar, yürütülen bir dosya veya veritabanı testi değil, varsayımsal hata durumlarıdır.
Farklı kaynak baytlarıyla tekrarlanan bir kimlik gelirse, belgelenmiş bir revizyon kararı için orijinali ve çelişkiyi koruyun. Değişen karma, mesaj sayımlarının değiştiğinin kanıtı değil, araştırılması gereken bir sinyaldir: biçimlendirme veya normalleştirme de baytları etkileyebilir. Onaylanan uygulama kapsamında gerçek depolama işlemini, kilitlenme kurtarmayı ve kaynak bayt karşılaştırmasını test edin; Bu kılavuzda herhangi bir dayanıklılık garantisi verilmemektedir.
Kesinlik iddia etmeden gecikmeyi ele alın
Gerçek API, gelenlerin yeniden sorgulanmasını desteklediğinde sınırlı bir örtüşme penceresi kullanın ve ardından kimliğe göre tekilleştirin. Gözlemlenen besleme gecikmelerini ve operasyonel ihtiyaçları kullanarak örtüşmeyi seçin. Sonlu bir örtüşme, keyfi olarak geç verilerin keşfedilmesini garanti edemez. Periyodik tam mutabakat veya başka bir belgelenmiş dolgu mekanizması ekleyin ve kalan kapsam sınırlamasını kaydedin.
Değişiklikleri tam kopyalardan farklı tutun. Çatışma durumunda her iki hash'i koruyun ve açıklanamayan bir değişikliğin önceden yayınlanmış bir müşteri raporunu sessizce değiştirmesini önleyin. Geçerli bir düzeltme kabul edildiğinde etkilenen özetleri, önceki sonuca giden bir izlemeyle birlikte yeni bir revizyon altında yeniden hesaplayın.
Gerçek hizmet sözleşmesi kapsamında kurtarma
Hız sınırlarına, Yeniden Denemeye ve sürüme özel sayfalandırmaya uyun. GitHub'ın en iyi API uygulamaları Sınırlı ve düşünceli istek davranışının somut bir örneğini sunun; kimlik doğrulama satıcısının kotalarını tanımlamazlar. 429 veya geçici bir hatayı, sınırsız paralel isteklere izin olarak değil, politika dahilinde duraklatma ve yeniden deneme nedeni olarak değerlendirin.
Son başarılı kontrol noktasını, en eski işlenmemiş varış noktasını, yeniden deneme tükenmesini ve çatışmaları izleyin. İmlecin takılı kaldığı sağlıklı bir API yanıtı hâlâ başarısız bir senkronizasyondur. Belirsiz bir sonuç durumunda, yan etki yaratan bir adımı yeniden denemeden önce kayıtlı kimlikleri ve ilerlemeyi inceleyin. Kurtarmanın kanıta dayalı olması için kaynak baytlarını ve önceki kontrol noktasını koruyun. Burada hiçbir API çağrısı, yeniden deneme simülasyonu veya EmailAuth senkronizasyon özelliği gösterilmemiştir. GitHub'ın hız sınırı belgeleri oran limitleri için 403 ve 429'u döndürebileceğini belirtiyor; Her duruma tek bir anlam atamak yerine, belgelenmiş limit sinyallerini kalıcı yetkilendirme reddinden ayırt edin.