Foros del Web » Programando para Internet » PHP »

¿Solución para el max execution time?

Estas en el tema de ¿Solución para el max execution time? en el foro de PHP en Foros del Web. Buenas, tengo una pequeña duda, a ver si alguien me puede orientar. Estoy haciendo un pequeño script en php que lee todos los archivos txt ...
  #1 (permalink)  
Antiguo 22/05/2015, 02:31
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
¿Solución para el max execution time?

Buenas, tengo una pequeña duda, a ver si alguien me puede orientar.
Estoy haciendo un pequeño script en php que lee todos los archivos txt que hay en un directorio y los procesa.
El problema es que tarda un rato por cada archivo y cuando pasa de 120 segundos, me da un error de max execution time.
¿cómo podría hacer para que tras procesar un archivo, haga una nueva petición y por lo tanto no se me bloquee el script.
He pensado en algo como javascript para realizar una llamada a php por cada fichero, así podría ir actualizando por pantalla cuando termine de procesar un fichero y hará una petición por fichero, lo que evitará que llegue al tiempo máximo de ejecución.
¿es esto correcto? ¿habría alguna forma de realizarlo directamente en php?

No hace falta que me deis la solución masticada, me basta con una orientación, luego ya me busco yo la vida.
Gracias
  #2 (permalink)  
Antiguo 22/05/2015, 03:24
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: ¿Solución para el max execution time?

Buenas,

En el .htacces puedes modificar el valor mediante:
Código Apache:
Ver original
  1. php_value max_execution_time 0

En valor 0 creo que permite el tiempo máximo, desconozco cual es el valor absoluto.

Para entorno de desarrollo está bien, pero para producción... no sabría decirte si es buena idea.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #3 (permalink)  
Antiguo 22/05/2015, 04:06
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: ¿Solución para el max execution time?

Gracias Uncontroled_Duck
Lo había pensado, pero si se tira ahí 15 minutos me gustaría poder ver lo que va haciendo.
Si no encuentro otra solución utilizaré esa.
  #4 (permalink)  
Antiguo 22/05/2015, 05:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿Solución para el max execution time?

Tal vez sea la lógica aplicada lo que causa ese exceso de procesamiento, y en realidad lo que hay que hacer es cambiar la estrategia del proceso, y lograr una optimización.
Pero nos falta información crítica para entender bien el problema:
- ¿Cuántos .TXT?
- ¿De qué tamaño?
- ¿Qué contienen?
- ¿Qué haces con ellos?
- ¿Cuál es el resultado del procesamiento de los .TXT?

Tal vez la cosa, como digo, no pase por aumentar el timeout, sino mejorar la performance del proceso mismo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/05/2015, 09:50
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: ¿Solución para el max execution time?

Lo que hago con los txt es traducirlos mediante una api, por lo que no hay mucha más optimización. Y la cantidad de archivos no tiene límites, así que por mucho que optimice no podré mejorar los tiempos.
Al final tendré que quitar el timeout para que termine cuando sea.
Gracias
  #6 (permalink)  
Antiguo 22/05/2015, 09:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿Solución para el max execution time?

Realmente no aclaraste nada...
¿Traducir qué?
¿Con qué API?
No existe el concepto de "no tiene límites" en archivos. ¿De cuantos archivos pro día / hora estamos hablando?
¿Qué contienen exactamente? ¿Qué tamaño? ¿Cuánto tarda en procesar la API cada uno?

Sin responder cosas así no puedes saber si se puede o no optimizar...

Ten en cuenta que aumentar el timeout no será solución, en el contexto que describes, por lo que sólo te quedaría optimizar el procesamiento...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/05/2015, 06:22
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: ¿Solución para el max execution time?

Los archivos son de unas 500 palabras y solo puedo traducir 500 caracteres por petición(la api es de mymemory) asi que tarda unos 30 segundos en procesar cada archivo.
En cuanto al número de archivos podrían ser entre
2000 y 4000. Y su no hubiese problemas de timeout podria añadir otros 10000 archivos mas

Etiquetas: max
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 02:36.