Foros del Web » Programando para Internet » PHP »

¿Ejecutar script php y detenerlo inmediatamente?

Estas en el tema de ¿Ejecutar script php y detenerlo inmediatamente? en el foro de PHP en Foros del Web. Cuando un usuario confirma su registro, un script se ejecuta creando carpetas y registros con suficiente tiempo como para durar de 5 a 15 segundos.. ...
  #1 (permalink)  
Antiguo 21/03/2016, 18:45
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
¿Ejecutar script php y detenerlo inmediatamente?

Cuando un usuario confirma su registro, un script se ejecuta creando carpetas y registros con suficiente tiempo como para durar de 5 a 15 segundos..
que pasa si el usuario se le cierra la ventana o cierra la pestaña antes de que pasen completos?

¿se quedara a medias el proceso?
y si es asi ¿que me recomendarian hacer?

es muy importante que todo este creado, ya que despues no hay verificaciones de que si existe o no existe tal cosa, todo se asume que se creo al confirmar..
de antemano gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #2 (permalink)  
Antiguo 21/03/2016, 19:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Cita:
con suficiente tiempo como para durar de 5 a 15 segundos..
Mal, jamás deberías hacer esperar a un usuario una tarea así de lenta y menos si no puede resumirla más tarde.

Cita:
que pasa si el usuario se le cierra la ventana o cierra la pestaña antes de que pasen completos?
Dado que PHP se ejecuta en el servidor el detener la carga en el navegador en teoría no debería afectar dicho proceso.

Cita:
¿que me recomendarian hacer?
Usar Ajax, para que así el proceso de registro no tenga que ver con "la carga de la pagina" y pueda ejecutarse en un segundo plano en el servidor.

Cita:
todo se asume que se creo al confirmar..
El peor argumento de todos.

Jamás debes asumir nada, si tu sistema no tiene control de estos detalles en cualquier momento puedes echar a perder las cosas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/03/2016, 21:11
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Cita:
Iniciado por pateketrueke Ver Mensaje
Mal, jamás deberías hacer esperar a un usuario una tarea así de lenta y menos si no puede resumirla más tarde.



Dado que PHP se ejecuta en el servidor el detener la carga en el navegador en teoría no debería afectar dicho proceso.



Usar Ajax, para que así el proceso de registro no tenga que ver con "la carga de la pagina" y pueda ejecutarse en un segundo plano en el servidor.



El peor argumento de todos.

Jamás debes asumir nada, si tu sistema no tiene control de estos detalles en cualquier momento puedes echar a perder las cosas.
oks, entonces lo hare mas simple.. cuando el usuario vaya a iniciar sesion y por x razon falte alguna carpeta, el script ejecute otra vez la funcion que confirma registro para que cree de nuevo todo, si existe lo crea, si no lo deja(eso ya lo tengo asi)

y bueno es que son tantas carpetas que la pagina dura todo eso..
pero de igual manera cuando el usuario da click en el link, lo direcciona a la pagina y la pagina le dice que espere 5 segundos.. pero esa pagina aparece uina vez que se ejecuto el script de confirmacion..
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #4 (permalink)  
Antiguo 21/03/2016, 21:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Cita:
y bueno es que son tantas carpetas que la pagina dura todo eso..
Me interesa conocer el código de dicho procedimiento: sólo por curiosidad.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/03/2016, 23:40
Avatar de wunderwaffen077  
Fecha de Ingreso: marzo-2014
Mensajes: 45
Antigüedad: 10 años, 1 mes
Puntos: 3
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

También quisiera ver el código, para ver si podría usar transacciones. Y además de eso combinarlos con ejecuciones en segundo plano. Pues así seria una bala!

=)
  #6 (permalink)  
Antiguo 22/03/2016, 10:40
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Cita:
Iniciado por pateketrueke Ver Mensaje
Me interesa conocer el código de dicho procedimiento: sólo por curiosidad.
A mi también me pica la curiosidad, que necesidad puede haber para crear muchos directorios en un simple registro, y crear 3 ó 4 directorios no debería de demorar tanto tiempo.

No se por que pero me da que lo que haces es almacenar información de forma redundante, duplicar archivos o similar.
  #7 (permalink)  
Antiguo 22/03/2016, 10:51
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Cita:
Iniciado por xerifandtomas Ver Mensaje
A mi también me pica la curiosidad, que necesidad puede haber para crear muchos directorios en un simple registro, y crear 3 ó 4 directorios no debería de demorar tanto tiempo.

No se por que pero me da que lo que haces es almacenar información de forma redundante, duplicar archivos o similar.
Bueno, en realidad son solo 2 carpetas e inserción de 3 registros en 3 tablas diferentes.
esto lo hago para no tener que insertar todo cuando el usuario se registra, si no hasta que confirme que es un usuario verídico con su correo.

mas adelante ocupare mas carpetas y allí si se pondrá mas lento (creo)
a veces mi hosting compartido se torna lento.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #8 (permalink)  
Antiguo 22/03/2016, 10:56
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Si utilizas PHP-FPM, puedes hacer eso, usando fastcgi_finish_request.
Es posible que register_shutdown_function también te lo permita hacer.

Aún así, eso no significa suponer que todas las tareas que quieres hacer, se completen con éxito. Es más, si necesitas notificar al usuario de cualquier error, no podrás hacerlo (la request ya ha terminado)
  #9 (permalink)  
Antiguo 22/03/2016, 11:17
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Pero que es lo que almacenas en esas 2 carpetas o son directorios vacíos, ¿copias algo ahí dentro? por que por las operaciones que dices 15 segundos me parece un tiempo excesivo, para eso.

Intenta revisar los tiempos de respuesta con firebug o alguna otra aplicación, por que puede ser que tu lentitud sea debido a otra cosa.

Si realmente es problema de tu Script depuralo porque esos tiempos me parecen muy altos.
  #10 (permalink)  
Antiguo 22/03/2016, 11:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Ejecutar script php y detenerlo inmediatamente?

Definitivo, ejecutar tres consultas y crear directorios no debería tardar de 5 a 15 segundos: por eso sería interesante mirar el código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: registro
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 19:51.