Foros del Web » Programando para Internet » PHP »

Acuñar una lógica que luego de unos segundos vuele el archivo.

Estas en el tema de Acuñar una lógica que luego de unos segundos vuele el archivo. en el foro de PHP en Foros del Web. Hola comunidad. Pretendo querer eliminar un archivo temporal luego de unos segundos, en un momento considere la función PHP sleep, pero no es ideal porque ...
  #1 (permalink)  
Antiguo 01/08/2012, 19:43
Avatar de romel_inc  
Fecha de Ingreso: diciembre-2007
Ubicación: Venezuela-monagas
Mensajes: 288
Antigüedad: 16 años, 5 meses
Puntos: 14
Acuñar una lógica que luego de unos segundos vuele el archivo.

Hola comunidad.

Pretendo querer eliminar un archivo temporal luego de unos segundos, en un momento considere la función PHP sleep, pero no es ideal porque para todo el proceso. Es preciso que los procesos continúen.


El caso donde aplico este comportamiento es el siguiente:

Para cada producto cargo x cantidad de imágenes en su forma original en el directorio "/images". Resulta que las miniaturas las genero dinámicamente, es decir a una función le indico la imagen y el tamaño en que la quiero. En este proceso la imagen "miniatura" generada es almacenada en el directorio /images-tmp.
Para cuando un producto es solicitado todas la imágenes relacionadas y requeridas por el cliente, se generan y son descargadas del directorio /images-tmp.
Es lógico pensar que este directorio "/images-tmp" se va a inflar rápidamente. para evitar esto, como aseguro que luego de cumplir con el fin (la imagen sea descargada por el cliente) tal imagen generada sea volada de tal directorio.

Puedo crear una lógica en el cliente que me permita volar tal imagen a penas tal sea descargada con éxito. Pero si la url es llamada en forma independiente, debe existir un método que me permita garantizar el volado de tal imagen.

Ejemplo de este comportamiento o punto en general:

1) 1500px ---> https://lh3.googleusercontent.com/-2...Tg/s1500/3.jpg

2) 500px ---> https://lh3.googleusercontent.com/-2...eTg/s500/3.jpg

Yo creo que google deber haber escrito un proceso que le permita volar la miniatura creada. Noten la url, cambian en un numero, el cual indica el tamaño resultante. En principio tal numero es determinado por las dimensiones del cliente. De no haber creado tal proceso de eliminación, google en poco tiempo tendría problemas de espacio.


Por lo tanto podría decirse que busco un comportamiento similar a setTimeout de javascript en php.
Código:
<script type="text/javascript">
function myFunction()
{
console.log('hola')
setTimeout(function(){alert("Hello")},3000);
console.log('hola2')
}
</script>
Según esta fuente:
http://stackoverflow.com/questions/6...ivalent-in-php

"I can suggest you look into Gearman as a solution to delegate work to other PHP processes."

Este framework puede ayudarme a resolver este asunto.

He experimentado algo con el demo de http://www.php.net/manual/es/gearman...settimeout.php . Pero no he logrado hacerlo funcionar.

Sus ideas y criticas son bienvenidas

Mi descripción ha sido larga pero espero que sea de interés.

saludos.
__________________
Lo que se usar (JAVA, Spring MVC, IntelliJ IDEA , GAE, CakePHP, Bootstrap, Underscorejs, jQuery, HTML5, CSS3, JSON, Ajax, Prototype), Aprendiendo a usar Angularjs y Git.
  #2 (permalink)  
Antiguo 01/08/2012, 21:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acuñar una lógica que luego de unos segundos vuele el archivo.

No veo la complicación, yo implementaría un recolector de basura que busque en las carpetas donde se guardan dichos archivos temporales.

Si realmente no se han leído en al menos determinado tiempo los borramos y ya, ¿a eso le dice volar? ¡Vaya que el volado es otro!

Claro, todo esto corriendo como servicio bajo un cron, al menos una vez al día.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/08/2012, 22:09
Avatar de romel_inc  
Fecha de Ingreso: diciembre-2007
Ubicación: Venezuela-monagas
Mensajes: 288
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Acuñar una lógica que luego de unos segundos vuele el archivo.

Cita:
Iniciado por pateketrueke Ver Mensaje
No veo la complicación, yo implementaría un recolector de basura que busque en las carpetas donde se guardan dichos archivos temporales.

Si realmente no se han leído en al menos determinado tiempo los borramos y ya, ¿a eso le dice volar? ¡Vaya que el volado es otro!

Claro, todo esto corriendo como servicio bajo un cron, al menos una vez al día.
Muy, muy interesante, voy a indagar a fondo en el tema que propones, mil gracias pateketrueke.

PD: Y si eso, al menos por estos lados, se puede decir volar, cuando que se quiere borrar algo. ¿Como interpretas "volado"?

Saludos.
__________________
Lo que se usar (JAVA, Spring MVC, IntelliJ IDEA , GAE, CakePHP, Bootstrap, Underscorejs, jQuery, HTML5, CSS3, JSON, Ajax, Prototype), Aprendiendo a usar Angularjs y Git.
  #4 (permalink)  
Antiguo 02/08/2012, 00:48
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Acuñar una lógica que luego de unos segundos vuele el archivo.

¿Y no es mejor dejar esas miniaturas para la próxima petición?

Me explico, un usuario pide la imagen casa a tamaño 200 px de ancho y la guardas en temporales con nombre casaAncho200.jpg, cuando alguien pida una imagen compruebas que esté en temporales y si es así ya no la generas con lo que ahorras procesador.

Al menos yo lo hice así y me va muy bien. Además hoy en día en cualquier hosting te dan gigas y gigas de almacenamiento, incluso ilimitado en algunos casos.
  #5 (permalink)  
Antiguo 02/08/2012, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Acuñar una lógica que luego de unos segundos vuele el archivo.

Exacto, es mucho más óptimo tener los thumbs guardados en lugar de generarlos al vuelo, ahorras muchos recursos a nivel procesador y el espacio en disco es barato.
  #6 (permalink)  
Antiguo 02/08/2012, 11:42
Avatar de romel_inc  
Fecha de Ingreso: diciembre-2007
Ubicación: Venezuela-monagas
Mensajes: 288
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Acuñar una lógica que luego de unos segundos vuele el archivo.

Cita:
Iniciado por alyciashape Ver Mensaje
¿Y no es mejor dejar esas miniaturas para la próxima petición?

Me explico, un usuario pide la imagen casa a tamaño 200 px de ancho y la guardas en temporales con nombre casaAncho200.jpg, cuando alguien pida una imagen compruebas que esté en temporales y si es así ya no la generas con lo que ahorras procesador.

Al menos yo lo hice así y me va muy bien. Además hoy en día en cualquier hosting te dan gigas y gigas de almacenamiento, incluso ilimitado en algunos casos.
Hola alyciashape, tal conjuntos de acciones o procesos que propones implicaría trabajar con mucha data. Por ejemplo para cada imagen hay x cantidad determinada de miniaturas, teniendo en cuenta que una parte es determinada por la dimensiones del cliente y otras generadas por solicitudes directas en la url, ya son muchas miniaturas, no esta tan optimo como parece.

Mientas menos espacio de discos use, es mejor porque las probabilidades en general de errores es menor.

Por otro lado, yo personalmente creo que los hosting que ofrecen espacio ilimitado lo dicen solo para atraer clientes. Ya que la mayoría de sus clientes contratan espacios para instalar blogs y eso no representa mas de unos cuantos megas en promedio. Por ejemplo servicios como los que prestas softlayer.com cuestan desde miles a cientos de miles al año y eso es por un espacio y capacidad de proceso determinado. En síntesis tener y mantener servidores es costoso. Y este sistema va a tener sus propios servidores.


Saludos.

Cita:
Iniciado por GatorV Ver Mensaje
Exacto, es mucho más óptimo tener los thumbs guardados en lugar de generarlos al vuelo, ahorras muchos recursos a nivel procesador y el espacio en disco es barato.
Hola GatorV, ciertamente tiene sentido si la aplicación o sistema se construyera para un dispositivo con dimensiones especificas. Pero este sistema pretende popular los diferentes dispositivos populares existentes y también aprovechar el máximo y en forma optima la pantalla del cliente, tal como lo hace google plus y de esa forma lograr una mejor experiencia al usuario.

También para proyectos que están en constante evolución, la vista puede sufrir cambios drásticos, las miniaturas guardadas pueden no ser optimas para las nuevas vistas. google plus, gravatar así como también muchos otros sitios de alto trafico generan su miniaturas constantemente.

Ejemplo:

http://2.gravatar.com/userimage/5/04...acc9a?size=320
http://2.gravatar.com/userimage/5/04...acc9a?size=120
http://2.gravatar.com/userimage/5/04...acc9a?size=520


Saludos.
__________________
Lo que se usar (JAVA, Spring MVC, IntelliJ IDEA , GAE, CakePHP, Bootstrap, Underscorejs, jQuery, HTML5, CSS3, JSON, Ajax, Prototype), Aprendiendo a usar Angularjs y Git.
  #7 (permalink)  
Antiguo 02/08/2012, 13:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Acuñar una lógica que luego de unos segundos vuele el archivo.

Claro todo tiene su uso, puedes generarlas al vuelo o dejarlas fijas, solo te digo lo que es más optimo cuando buscas rendimiento

Etiquetas: segundos
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 23:01.