Foros del Web » Programando para Internet » PHP »

Iniciar proceso PHP

Estas en el tema de Iniciar proceso PHP en el foro de PHP en Foros del Web. Hola a todos. Necesito saber si se puede iniciar un proceso escrito en PHP para que trabaje el tiempo que sea necesario sin que ningún ...
  #1 (permalink)  
Antiguo 19/05/2004, 09:00
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
Iniciar proceso PHP

Hola a todos.

Necesito saber si se puede iniciar un proceso escrito en PHP para que trabaje el tiempo que sea necesario sin que ningún cliente espere por el.

El problema es el siguiente:

Tengo una página que bajo ciertos criterios abre una vista tipo Thumbnails de las fotos contenidas en una carpeta. El proceso ya trabaja bien, genera los thumbnails si hacen falta y si ya estan creados, los envia directo al cliente.

Ahora quisiera aislar esa función, y hacer un recorrido por todos los folders para que genere de una vez todos los thumbnails que necesito y asi aligerar la navegacion de los usuarios.

Debo decir que estamos hablando de ocho años de fotografías y un promedio de 200 fotos diarias.

En principio pense en hacer una paginita que, via JavaScript, pida generar los thumbnails de un dia, espere unos segundos y luego se recargue solicitando los del dia siguiente. Eso sin duda servirá, sin embargo...

¿Existirá alguna manera de disparar un algoritmo que transforme una porción mayor de la data sin que un browser esté esperando por la respuesta?

Saludos.
  #2 (permalink)  
Antiguo 19/05/2004, 09:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hla Kao (cuanto time() sin leerte xD)

El proceso lo puedes lanzar con:

Cron Job (linux)
"Programador de Taréas" (windows)

Si usas un servicio de hosting que te permita crear Cron Job .. la llamada a tu script de proceso PHP sería algo tipo:

GET http://www.tal.ta/script_proceso.php >/dev/null

Y programas los intervalos de fechas/horas que desees la ejecución.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 19/05/2004, 09:25
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
Hola Cluster, tiempo sin cruzarnos por estos lares...

Primeramente gracias por tu oportuna respuesta.

En segundo lugar, queria ahondar un poco en lo que propones:

El servidor que uso esta dentro de mi oficina y uso Windows 2000 Advanced Server como Sistema Operativo, y Apache como HTTP Server, por lo que me es posible usar el Programador de Tareas, es decir que ya tengo entonces una alternativa válida, sin embargo, tengo algunas dudas:

- ¿Como hago si quiero disparar el proceso a solicitud mia (tal como lo haría abriendo una página) sin fecha ni hora prefijada? ¿Puede un script PHP disparar "lateralmente" a otro script PHP que quede trabajando aún cuando el cliente cierre su browser?

- Si tomo la vía del Programador de Tareas...¿Debo subir el TimeOut de Apache y de PHP para complacer a ese script en detrimento de los usuarios?

Saludos y de nuevo gracias por tu eficiencia.
  #4 (permalink)  
Antiguo 19/05/2004, 09:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mmmm...

Cita:
- ¿Como hago si quiero disparar el proceso a solicitud mia (tal como lo haría abriendo una página) sin fecha ni hora prefijada? ¿Puede un script PHP disparar "lateralmente" a otro script PHP que quede trabajando aún cuando el cliente cierre su browser?
Eso es otra cosa ..

PHP dispone del control de si el usuario abortó la ejecución de un script o no:

ignore_user_abort()

Con esa función .. podrías llamar a tu script y "cerrar" tu ventana. PHP detectaría que se cerró por acción del "cliente" pero igual continuaría su proceso.

http://www.php.net/manual/en/feature...n-handling.php

También puedes definir una función que al "cerra" tu script se "lanze" y continue ejecutandose:

register_shutdown_function()

Cita:
- Si tomo la vía del Programador de Tareas...¿Debo subir el TimeOut de Apache y de PHP para complacer a ese script en detrimento de los usuarios?
El tiempo que le tienes que dar a tu ejecución del script (y si requiere de configuración de Apache) sería la que demore tu script en su ejecución .. exactamente lo mismo que si lo llamases bajo tu servidor HTTP. (en ese caso .. la llamada podría ser en modo "CLI" (Command Line Interface) directo sobre el interprete PHP ya que el proceso no requiere de salida directa al "cliente" (siempre puedes generar "log" de como fué el proceso en archivos de texto plano por ejemplo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 19/05/2004, 09:55
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 3 meses
Puntos: 38
Gracias Cluster, como siempre: preciso y oportuno.
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 17:13.