MySQL - 300 segundos no son suficientes

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 26 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

300 segundos no son suficientes

Publicado por Mario (3 intervenciones) el 15/03/2019 14:18:45
Hola.

Necesito que mi consulta no se detenga a los 300 segundos (5 minutos)

Programé un script para la generación de archivos excel a partir del resultado obtenido en la base de datos, son varias tablas las que se cruzan.

Para crear archivos excel relativamente pequeños / medianos / grandes que tardan menos de 5 minutos en construirse todo funciona bien, pero para archivos muy grandes (más de 10.000 filas), los cuales revisando con cronómetro en mano el servidor de inmediato envía a error 504 tan pronto el reloj llega a los 5 minutos.

Ingresé por terminal al archivo de configuración de mysql my.cnf y modifiqué los valores para

wait_timeout y interactive_timeout

además en la configuración php modifiqué los valores así:

max_execution_time 0
max_input_time -1

para probar que funcionara pero al crear archivos excel muy grandes aún persiste el error.

No logro pasar de los 5 minutos debido a que el proceso se detiene de inmediato.

Alguien podría darme una idea de qué estoy haciendo mal, o qué debería hacer?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

300 segundos no son suficientes

Publicado por xve (1151 intervenciones) el 15/03/2019 19:07:03
Hola Mario, faltaría ver si ejecutas tu código php desde consola o desde el navegador sobre un servidor apache, y si es sobre el servidor Apache o cualquier otro servidor web, faltaría ver cual es el proceso que corta a los 5 minutos... puede ser la base de datos, el php o el servidor web.

Si lo ejecuta en terminal, no hay limite de tiempo para php ni para servidor web, ya que no existe en la terminal.

Lo has probado desde la terminal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 26 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

300 segundos no son suficientes

Publicado por Mario (3 intervenciones) el 15/03/2019 19:19:40
Hola, gracias por responder.

Todo lo ejecuto desde un servidor linux, VPS, con 8G de ram.

Lo que se me hace raro es que todo funciona correctamente cuando el script crea archivos de menos de 8.000 / 10.000 filas, de hecho, para crearlos toma menos de 5 minutos, pero cuando el archivo debe generarse con más de 10.000 filas, el tiempo que toma el proceso es de más de 5 minutos, y es ahí cuando al cumplirse los 5 minutos, los cuales tomo con cronómetro en mano, el proceso se corta.

Es justo lo que intento con los valores que mencioné en el primer mensaje, extender esos 300 segundos por lo menos a 1800, pero no lo he logrado.

la configuración de mi php.ini es esta, los he puesto así para realizar pruebas

1
2
3
4
5
6
php_value max_execution_time 0
php_value max_input_time -1
php_value max_input_vars 10000
php_value memory_limit 2048M
php_value post_max_size 1024M
php_value upload_max_filesize 512M

En el archivo my.cnf el cual edito por consola, los valores que he puesto son:

1
2
wait_timeout=1800
interactive_timeout=1800

Pero nada de esto ha funcionado.
El proceso a los 5 minutos, termina sin más, presentando error 504

Cualquier idea de qué más puedo hacer te la recibo.
Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 117
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

300 segundos no son suficientes

Publicado por Nicolas (46 intervenciones) el 15/03/2019 19:28:55
Hola Mario.
A mi me paso algo similar y lo solucioné creando indices en algunos campos específicos de las tablas que componen las consultas.
Espero que te sea útil la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 26 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

300 segundos no son suficientes

Publicado por Mario (3 intervenciones) el 15/03/2019 22:07:20
Hola, gracias por responder.

¿Crees que esa podría ser la solución?

Si fuera eso, ¿por qué justo a los 5 minutos se cierra el proceso? y no a los 6 o antes, a los 3.

Es lo que me tiene intentando buscar la forma que el proceso no se cierre cumplidos los 5 minutos, si lograra extender esos 5 minutos y siguiera fallando revisaría otras opciones, pero no lo he conseguido, entonces sigo convencido que la razón no es diferente a que algo en los timeout hace que llegados los 5 minutos, falle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar