Foros del Web » Creando para Internet » HTML »

Conexion cerrada prematuramente

Estas en el tema de Conexion cerrada prematuramente en el foro de HTML en Foros del Web. Hola a todos. Tengo una serie de procesos en php que tardan mucho en responder por que hacen cosas complejas (digamos una consulta muy larga, ...
  #1 (permalink)  
Antiguo 25/10/2012, 10:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Conexion cerrada prematuramente

Hola a todos.

Tengo una serie de procesos en php que tardan mucho en responder por que hacen cosas complejas (digamos una consulta muy larga, de datos detallados de varios meses). Y el problema es que en algunos servicios de internet (varía en cada proveedor) la conexión se cierra antes de recibir respuesta, en concreto, un proveedor llamado megared en ciertas ciudades si la petición tarda más de 30 ó 40 segundos en responder se cierra la conexión.

El mismo proceso con otra conexión a internet sí responde, aunque tarde varios segundos. Y además afectaría un chat que hace llamadas tipo long polling.

No es sencillo pedirle a los usuarios o clientes que cambien de proveedor, así que me puse a investigar si hay alguna manera de indicar al navegador que mantenga la conexión, y lo único que encontré es los encabezados keep alive, aunque no creo que eso ayude al problema, además, que posiblemente el navegador no pueda hacer nada si el problema viene de la red.

¿Alguien ha tenido el problema y lo ha resuelto?

Coloco el tema aquí ya que no veo que tenga que relación con php
  #2 (permalink)  
Antiguo 25/10/2012, 19:01
 
Fecha de Ingreso: octubre-2012
Mensajes: 13
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Conexion cerrada prematuramente

Yo creo que la cabecera Keep Alive deberia funcionar. Deberías conocer cuánto tiempo tardan en ejecutarse los procesos en total. Con el parametro timeout de la cabecera puedes configurar el tiempo mínimo que se debería mantener la conexion "con vida".

Si has probado esto y no funciona no se qué podrias hacer. Quizá dividir los procesos en procesos más cortos y forzar que se actualizara la pagina en cada paso. O quizá tener las consultas ya hechas y que se fueran actualizando cada vez que sea modifice la informacion, de forma que sólo fuera necesario mostrar el resultado almacenado.

Espero haberte ayudado aunque sea un poco =P

Un saludo!
  #3 (permalink)  
Antiguo 26/10/2012, 10:55
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Conexion cerrada prematuramente

Gracias por tu interés en el tema. Ya modifiqué el keep alive pero parece que este dato es ignorado, la conexión se cierra. Trataré nuevamente de hablar con el proveedor de internet por si puede hacerse algo, que no creo. Y no puedo partir las consultas, ya que es un reporteador que emite la consulta armada por el usuario, es decir él puede crear la consulta de la forma que desee, por lo que no la conozco.
  #4 (permalink)  
Antiguo 26/10/2012, 21:47
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Conexion cerrada prematuramente

Por defecto php tiene un limite para el tiempo de ejecución de una script de 30 segundos, dicho valor puede ser cambiado, ya sea globalmente, modificando el valor de la directiva
max_execution_time = valor en segundos ;
en php.ini
ó en la misma script con
set_time_limit(valor en segundos);
Quizás eso lo resuelva

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: conexion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:50.