Мы используем метод domain.select (), который предоставляет boto, для запроса 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?