Estamos utilizando el método domain.select(), que boto proporciona, para consultar SimpleDB. Para consultas más pequeñas (consultas que involucran un par de horas de datos), este método funciona bien. Pero cuando empiezo a usar múltiples hilos y consultas más largos (24 horas de datos), comienza el tiempo de espera, dando siguiente error en la salida estándar:¿Cómo manejar el error de solicitud de tiempo de espera (408) en boto?
-------------------------
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>
Quiero poner en práctica un mecanismo de reintento (retroceso exponencial), cuando este error se encuentra Boto no arroja ninguna excepción para este error y simplemente lo imprime. Para implementar un mecanismo de reintento, necesito algún tipo de código de error o excepción para saber que se ha producido el error.
¿Alguna idea sobre cómo lograr esto en boto?
gracias por su respuesta. Sí, vuelve a intentar en 503, pero no hay forma de averiguar qué hace con 408, tampoco arroja ninguna excepción ... la documentación del boto apesta al hombre. – Sujit
Boto no vuelve a intentar en una respuesta 408 porque AWS lo solicitó hace varios años. Si la documentación de AWS ahora indica que se debe volver a intentar, se debe cambiar el boto para volver a intentarlo. Sugeriría que presenten un boleto en github y me ocuparé personalmente de él. – garnaat
BTW, Sujit, ¿hay alguna posibilidad de que pueda ser más específico sobre los problemas con los documentos del boto? Siempre estoy feliz de recibir sugerencias de mejora de la comunidad. ¡Gracias! – garnaat