boto が提供する domain.select() メソッドを使用して、SimpleDB にクエリを実行します。小規模なクエリ (数時間のデータを含むクエリ) の場合、この方法はうまく機能します。しかし、複数のスレッドとより長いクエリ (24 時間のデータ) の使用を開始すると、タイムアウトが開始され、stdout で次のエラーが発生します。
-------------------------
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>
このエラーが発生したときに、再試行メカニズム (指数バックオフ) を実装したいと考えています。Boto は、このエラーに対して例外をスローせず、単純に出力します。再試行メカニズムを実装するには、エラーが発生したことを知るために、何らかのエラー コードまたは例外が必要です。
botoでこれを達成する方法について何か考えはありますか?