Tenemos una aplicación django bastante típica ejecutándose en postgresql 9.0. Recientemente descubrimos algunas consultas de DNS que se han ejecutado durante más de 4 horas, debido a búsquedas ineficientes en la interfaz de administración. Si bien planeamos solucionar estas consultas, como medida de seguridad nos gustaría restringir artificialmente el tiempo de consulta de la base de datos a 15 segundos, pero solo en el contexto de una solicitud web; los trabajos por lotes y las tareas de apio no deben estar limitados por esta restricción.¿Cómo puedo limitar el tiempo de consulta de la base de datos durante las solicitudes web?
¿Cómo podemos hacer eso? ¿O es una idea terrible?
+ 1 Buena opción. Solo recuerde que el usuario puede restablecer esto para su sesión emitiendo el mismo comando con un tiempo de espera mayor. Con una llamada web, supongo que esto no sería un problema, ya que el usuario no tendrá una interfaz para configurarlo. – Kuberchaun
Matthew Wood: Vaya, qué gran sugerencia. Gracias. StarShip3000: esta respuesta resuelve el problema técnico, que es todo lo que me importa. El problema que plantea no es un problema tecnológico, es un problema de recursos humanos. Esos son fáciles de resolver. –
¡Gran solución! Gracias por eso. También puede emitir 'set session statement_timeout = 15000;' si solo quiere limitar una sesión específica, o incluso 'set local statement_timeout = 15000;'. Más información: http://www.postgresql.org/docs/9.5/static/runtime-config-client.html#GUC-STATEMENT-TIMEOUT –