我們使用boto提供的domain.select()方法來查詢SimpleDB。對於較小的查詢(涉及幾個小時的數據的查詢),此方法工作正常。但是,當我開始使用 多線程和較長的查詢(24小時的數據),就開始計時了,在標準輸出上給予以下錯誤:如何處理boto中的請求超時(408)錯誤?
-------------------------
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` >= '2011-08-24T10:45:56' and `timestamp` < '2011-08-25T10:45:56' and `identifier` = '00063F052C49' order by `timestamp` asc </Message><BoxUsage>0.0055590278</BoxUsage></Error></Errors><RequestID>....</RequestID></Response>
我想實現一個重試機制(指數退避),當這遇到錯誤。博託不會爲這個錯誤拋出任何異常,只是打印它。爲了實現重試機制,我需要某種錯誤代碼或異常來了解發生錯誤。
任何想法如何在博托實現這一點?
感謝您的回覆。是的,它在503上重試,但是沒有辦法找到它,它對408做了什麼,它也沒有拋出任何異常...... boto文檔吸人。 – Sujit
Boto不會在408響應中重試,因爲幾年前我們要求而不是AWS。如果AWS文檔現在聲明應該重試它,那麼應該更改boto以重試它。我會建議在github上提交一張票,我會親自處理。 – garnaat
順便說一句,Sujit,你可以更具體地討論boto文檔的問題嗎?我總是樂於從社區獲得改進建議。謝謝! – garnaat