2011-08-19 19 views
5

SimpleDB'yi sorgulamak için boto sağlayan domain.select() yöntemini kullanıyoruz. Daha küçük sorgular için (birkaç saatlik veriyi içeren sorgulamalar), bu yöntem iyi çalışır. Ne zaman buBoto'da zaman aşımı (408) hatası nasıl ele alınır?

------------------------- 
     4 0 8 
... 
<?xml version="1.0"?> 
<Response><Errors><Error><Code>QueryTimeout</Code><Message>A timeout occurred when attempting to query domain 'd110824' with query expression 'select * from `d110824` where `timestamp` &gt;= '2011-08-24T10:45:56' and `timestamp` &lt; '2011-08-25T10:45:56' and `identifier` = '00063F052C49' order by `timestamp` asc </Message><BoxUsage>0.0055590278</BoxUsage></Error></Errors><RequestID>....</RequestID></Response> 

Bir yeniden deneme mekanizması (üstel geri çekilme) uygulamak istiyorum: Ben birden konuları ve uzun sorgular (verinin 24 saat) kullanmaya başladığınızda Ama, stdout'ta aşağıdaki hatayı vererek aşımına uğramadan başlar hatayla karşılaşıldı. Boto bu hata için herhangi bir istisna atmaz ve basitçe yazdırır. Bir yeniden deneme mekanizması uygulamak için, hatanın meydana geldiğini bilmek için bir çeşit hata kodu veya özel durumuna ihtiyacım var.

Bunu boto'da nasıl gerçekleştireceğinizle ilgili herhangi bir düşünce var mı?

cevap

4

Boto ancak üzerinde, bir 503 üzerinde yeniden denenecek bir 408.

503 (mevcut değil hizmet) ve HTTP hataları bazı türleri bağlanmaya çalışırken dahil boto yeniden deneme yapacak birkaç şey vardır . Üstel geri çekmeyi kullanır ve varsayılan olarak 5 defaya kadar dener. Sen .boto Yapılandırma dosyasında num_retries ayarlayarak deneme sayısını değiştirebilirsiniz:

[Boto] 
num_retries = 3 

Bunu ben bunu yaparken tavsiye gördüm bir 408. AWS dokümanlar üzerinde değil deneme neden bilmiyorum.

+0

Cevabınız için teşekkür ederiz. Evet, 503'te tekrar deniyor, ama bulmanın bir yolu yok, 408 ile ne yapıyor, herhangi bir istisna da atmıyor ... boto belgeleri insanı berbat ediyor. – Sujit

+0

Boto, 408 cevabında tekrar denemediğimiz için birkaç yıl önce AWS tarafından değil. AWS belgeleri şimdi yeniden denenmesi gerektiğini belirtirse, yeniden denemek için boto değiştirilmelidir. Github'a bir bilet atmanızı öneririm ve ben kişisel olarak ilgilenirim. – garnaat

+1

BTW, Sujit, boto dokümanlarındaki sorunlardan daha kesin olabilme şansı var mı? Topluluktan iyileştirme önerileri almaktan her zaman mutlu oluyorum. Teşekkürler! – garnaat

İlgili konular