Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2010, 11:14
yoseman1
 
Fecha de Ingreso: octubre-2010
Mensajes: 19
Antigüedad: 13 años, 6 meses
Puntos: 1
Saber descargas simultaneas de archivo usando pids de apache

hola,

Bueno la verdad es que esto que pido no sé si es posible.

Pero por si acaso alguíen se ha topado alguna vez con el problema y me puede ayudar...

Lo que ocurre básicamente es que necesito habilitar en el servidor un sistema de descargas para una serie de usuarios.

Desde lenguaje de servidor y con base de datos controloaría todo.

Necesito que el usuario pueda descargase el archivo sólo una vez ya que pesa 6GB, esto no es problema con php.

Es decir hasta aqui ningún problema, todo lo sé hacer.

Pero ahora viene la miga, resulta que tengo un servidor dedicado con varias cuentas, y no quiero que ese archivo lo puedan descargar simultaneamente mas de 10 personas por ejemplo, porque entonces las demás páginas se ralentizarían.

Y el caso es que no sé muy bien como tratar esto:

Cuando sé que el archivo que se estaba descargando un usuario ha terminado de descargarse o simplemente el usuario paró la descarga.

Si tuviese alguna forma de saber esto, si que podría contabilizar el número de descargas simultaneas.

He llegado a pensar que tal vez obteniendo una tabla de los pid y su request de los procesos de apache y seleccionando los del archivo en cuestion podría crear un script que contabilizará las descargas actuales.

Ahora bien, como obtengo un listado de los procesos de apache y como cuento solo los que tiene un get del archivo en cuestión.

No sé si me he explicado bien, espero que si.

La intención es lanzar un comando en linux que me devuelva los pid de los servicios de apache asi como su request.

Luego desde volcaría lo que me devuelva ese comando al buffer de php y con eso ya podría saber las descargas activas para ese archivo.

No sé si estoy pidiendo un imposible, pero yo diría que no, hace tiempo que no toco linux.

Un saludo.

Última edición por yoseman1; 20/10/2010 a las 11:46