Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/08/2011, 08:39
xblanch
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: fórmula para calcular tiempo envío e-mails

Cita:
Iniciado por netkuup Ver Mensaje
Si te sobra un sleep del final le restas.

$tiempo=((($mails/$cant)*$segundos)-$segundos);


Pero el envío de los paquetes es instantáneo?

No tengo experiencia en envíos de mails, pero me parece que sería:
(Tiempo de envió de paquete 1) -> (tiempo de sleep) -> (tiempo envío paquete 2)...
y ahora estas haciendo:
(Tiempo de envio de paquete 1 = 0seg) -> (tiempo de sleep = 20seg) -> (tiempo envío paquete 2 = 0seg)...

PD: Antes de que me preguntes, no se como se calcula el tiempo que se tarda en enviar un paquete xD

Saludos.


Hola,
Antetodo gracias por la respuesta.

El envío es prácticamente instantáneo, a penas unas décimas de segundo (lo que tarda el servidor en procesar las instrucciones), bastante imperceptible, con lo que tampoco es mi intención calcular este tiempo exactamente.
Con la fórmula que me propones de restar uno, el resultado no es del todo correcto cuando hay decimales en el resultado de la división, va bien si el resultado es un entero. Cuando hay un decimal, al multiplicar me devuelve la parte proporcional del tiempo de sleep, y los ciclos de sleep son todos completos.

Por ejemplo: vamos a enviar 10 correos, en paquetes de 3, cada 5 segundos.
$mails=10;
$segundos=5;
$cant=3;

$tiempo=(((10/3)*5)-5);
da como resultado $tiempo= (3,3*5)-5)
que a su vez es $tiempo=16,5-5 que da $tiempo=11,5 segundos

11,5 son dos ciclos de sleep (5 segundos cada uno), + 1,5 más, que es la parte proporcional del último paquete enviado (que solo es de un e-mail). En este ejemplo solo ha habido dos ciclos de sleep en realidad.

Se me ocurre que quizás pueda evaluar si el resltado es un entero (si lo es restarle un ciclo de sleep), y si no lo es, convertirlo a entero. Hay la función intval() para convertir a entero, pero no he encontrado ninguna para evaluar si $tiempo es entero o decimal.
ALguna sugerencia?
probablemente ésta no sea la forma más limpia de hacerlo, pero bueno.
Espero haberme explicado bien.
Gracias.