2013-04-03 10 views

cevap

-2

Standart hata işleme burada tarif edilir: https://developers.google.com/drive/handle-errors

Ancak 500 hataları böylece günlük bilgileri ekleyin ve Google sizin için sorunu ayıklamaya bakabilirsiniz lütfen, hiçbir zaman olmamalıdır. Teşekkürler.

+0

Bir yanıt bulduğumda yanıtı günlüğe kaydeder ve bir cevap bulduğumda yanıtlayacağım. – Rajiv

+0

Bunun için oy verin - aynı sorun burada http://stackoverflow.com/questions/19769000/google-drive-uploading-file-size-limit –

+0

Benim için çözüldü - önceki yorumuma bakın. Mimuzu kontrol edin ve dosyalarınızı Content-Type: applicatio/octet-stream ile yüklemeyi deneyin. GoogleDrive bazen dosya yakınsama ile başarısız olur. –

0

Google's documentation, bunun onların bir iç hatası olduğunu ve düzeltebileceğiniz belirli bir hata olmadığını belirtmektedir. Fonksiyonları artan aralıklarla yeniden denemeye çalışan exponential backoff kullanılmasını önerirler.

Örneğin, işlev başarısız. 2 saniye bekleyin ve tekrar deneyin. Bu başarısız olursa, 4 saniye bekleyin. Daha sonra 8 saniye, 16, 32 vb. Büyük boşluklar, servisin kendisine daha fazla zaman ayırdığınız anlamına gelir. Gereksiniminize bağlı olarak, zamanı durdurmadan önce en fazla 10 dakika beklemek isteyebilirsiniz.

retrying paketinin bunun için çok iyi bir kurulumu var. Yeniden denenmesi gereken herhangi bir işlevde from retrying import retry ve retry dekoratör olarak kullanabilirsiniz.

@retry(wait_exponential_multiplier=1000, wait_exponential_max=60*1000, stop_max_delay=10*60*1000) 
def find_file(name, parent=''): 
    ... 

sadece fonksiyon bildirimi önce @retry koymak gerekir dekoratör kullanmak için: İşte benim bir örnek. Sadece retry()'u kullanabilirsiniz, ancak zamanlamanın nasıl çalıştığını ayarlamak için geçirebileceğiniz isteğe bağlı parametreler vardır. Denemeler arasında bekleme süresinin artmasını ayarlamak için wait_exponential_multiplier kullanıyorum. wait_exponential_max, denemeler arasında bekleyebilecek maksimum süredir. Ve stop_max_delay, istisnayı yükseltmeden önce yeniden denemek için harcayacağı zamandır. Tüm değerleri milisaniyedir.