Ver Mensaje Individual
  #10 (permalink)  
Antiguo 20/02/2014, 04:35
vale_N
 
Fecha de Ingreso: febrero-2014
Mensajes: 17
Antigüedad: 10 años, 2 meses
Puntos: 1
Respuesta: llamar varias veces a un mismo proceso

Cita:
Iniciado por piwy Ver Mensaje
Cierra la sesión antes de comenzar la tarea que consume tanto tiempo.
Con sesion destroy?? Sesion unset??
Te refieres a eso???

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludo>
Una hora!! En web!!! Sacrilegio!!! juasssssssss
en serio, es demasiado tiempo.

Ahora, lo que te decía que se convierta
en solicitadora la página es por ej que

1. El formulario que ya imagino estas usando,
cuando hacen el submit eso va a un php
donde se procesa y se quedo esperando la hora.

Propongo cambiar esto, para que cuando vaya al
submit, no ejecute de una vez la labor,
sino que vaya guardando cada solicitud
de generación en una tabla (base de datos) o en
un archivo plano (txt, similares)

Esto pasaría entonces de ser un proceso que espera
una hora, a que espere por máximo un minuto o dos.

Si ves, hasta ahora NO se ha ejecutado el proceso
que actualmente se te demora una hora.

Ahora bien, el siguiente paso es crear otro php,
pero que NO corra por la página, sino que sea una
tarea programada o cron job en el server,
y que se encargue de:

1. Leer las solicitudes
(si eliges bd, que consulte la tabla, si eliges txt que lea el archivo)
2. Ejecutar una a una las solicitudes, teorizando que varios usuarios
hagan uso de la herramienta
3. Ir guardando el resultado en una variable o en un archivo plano
o en la bd
4. A medida que vaya terminando, informe via email al usuario,
o en la página en una sección de "solicitudes resueltas"
que lo que pidío hace una hora ya fue ejecutado.
5. Ir "marcando" de algún modo las solicitudes que ya fueron hechas,
para que la próxima vez que la tarea programada se ejecute (puedes programarla por ej cada dos horas)
pues no vuelva a realizar las que ya hizo más las nuevas,
sino que se enfoque solo en las nuevas

Como ves, esto aceleraría el proceso en página para la solicitud,
mejoraría el procesamiento pues al ser una tarea programada
no ocuparia el navegador web y por esto no tendría tanta demora
en el tiempo de respuesta, y finalmente puedes optimizar
el proceso incluso mucho más de lo que yo te estoy proponiendo

Así que, lee esto y nos cuentas que has decidido

</saludo>
Se que es mucho tiempo, pero soy un "mandao", es lo que quieres, he tenido que limitar muchas cosas mas a base de insistir, porque pretendian hacer autenticas burradas.

Lo que me comentas estaria muy bien, pero de la manera que esta ahora mismo enfocado seria casi imposible, ya que no hay logueos y seria dificil saber quien hizo la solicitud, pero he pensado que si por ejemplo tarda 30 min o mas, se requiera un mail y se guarde todo en un archivo que luego se ejecute como tu me has comentado y una vez terminado, se mande el resultado al mail.
Y el server es de un tercero por lo que para acceder deberia pedirle acceso y no se si le estaria dispuesto a hacerlo o no....

De todas formas eso serian mejoras a hacer mas adelante ya que quieren tenerlo para esta semana funcionando todo

Muchas gracias por las sugerencias y espero hacerlo en un futuro para aprender y hacer una web mas funcional, ya iré comentando si me surge alguna duda de como implementarlo.

Saludos y mil gracias!