Tablestore Python yazılım geliştirme kiti (SDK), hataları istisnalar kullanarak işler. Bu konu, Tablestore hata işleme yöntemlerini, istisna bilgilerini ve yeniden deneme ilkelerini açıklar.
Yöntem
Tablestore Python SDK, hataları işlemek için istisnaları kullanır. Herhangi bir istisna oluşmazsa API çağrısı başarılı olur. Bir istisna oluşursa işlem başarısız demektir.
BatchGetRow ve BatchWriteRow gibi toplu işlemler için istisnaları kontrol etmeniz ve her satırın durumunu doğrulamanız gerekir. API çağrısı yalnızca tüm satırlar başarıyla işlendiğinde başarılı kabul edilir.
İstisnalar
Tablestore Python SDK iki tür istisna tanımlar: OTSClientError ve OTSServiceError. İkisi de Exception sınıfından türetilir.
OTSClientError: Yanlış parametre ayarları veya döndürülen sonucun ayrıştırılması sırasında oluşan hata gibi SDK içinde meydana gelen bir istisnayı belirtir.
-
OTSServiceError: Sunucu yanıtından ayrıştırılan sunucu tarafı hatayı belirtir. OTSServiceError aşağıdaki üyeleri içerir:
get_http_status: 200 veya 404 gibi HTTP dönüş kodu.
get_error_code: Tablestore tarafından döndürülen hata türü dizesi.
get_error_message: Tablestore tarafından döndürülen hata mesajı dizesi.
get_request_id: İsteği benzersiz şekilde tanımlayan evrensel benzersiz tanımlayıcı (UUID). Bir sorunu çözemezseniz bu istek kimliğini kaydedin ve bir destek bileti oluşturun.
Yeniden denemeler
SDK, bir hata oluştuğunda işlemi otomatik olarak yeniden dener. Varsayılan olarak maksimum yeniden deneme sayısı 20 ve maksimum yeniden deneme aralığı 3000 ms'dir. SDK, okuma işlemleri için kısıtlama hatalarını ve sunucu tarafı iç hataları yeniden dener. Daha fazla bilgi için tablestore/retry.py dosyasına bakın.
Özel bir yeniden deneme ilkesi oluşturmak için RetryPolicy sınıfından türetme yapabilirsiniz. Bir OTSClient nesnesini başlatırken özel yeniden deneme ilkesini parametre olarak iletin.
SDK aşağıdaki yeniden deneme ilkelerini sağlar.
DefaultRetryPolicy: Varsayılan yeniden deneme ilkesidir. Yalnızca okuma işlemlerini yeniden dener. Maksimum yeniden deneme sayısı 20, maksimum yeniden deneme aralığı ise 3000 ms'dir.
NoRetryPolicy: Yeniden deneme yapılmaz.
NoDelayRetryPolicy: Gecikmesiz bir yeniden deneme ilkesidir. Bu ilkeyi dikkatli kullanın.
WriteRetryPolicy: Varsayılan yeniden deneme ilkesine dayanır ve bu ilke yazma işlemlerini de yeniden dener.