Insert Retrazado en MySQL

Iniciado por Skeletron, 16 Enero 2011, 00:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

#10
Cita de: madpitbull_99 en 18 Enero 2011, 13:34 PM
Con PHP se podría hacer usando un Timer con microtime() y comprobando el tiempo que ha pasado.

Aquí tienes un ejemplo de como usar microtime() de la pagina oficial de php.net:
Código (perl) [Seleccionar]

<?php
/**
 * Función sencilla para repetir el comportamiento de PHP 5
 */
function microtime_float()
{
 list(
$usec$sec) = explode(" "microtime());
 return ((float)
$usec + (float)$sec);
}

$time_start microtime_float();

// Dormir por un momento
usleep(100);

$time_end microtime_float();
$time $time_end $time_start;

echo 
"No se hizo nada en $time segundos\n";
?>


MySQL tiene una función llamada INSERT DELAYED:
Fíjate si te sirve para lo que tu quieres.

PD: Se escribe retrasado, retrazado, viene del verbo trazar.


Es una opcion bastante interesante.
Queda del lado del servidor, por lo que el usuario no tiene mas control.
El insert delayed es para "esperar que la tabla quede libre" nada mas. es para dar prioridades de acceso.. algo así.

Y que tanto recurso consumirá tener varios scripts php dormidos? supongamos que tengo que esperar 15 minutos.

Ahora que recuerdo bien. mi servidor no me deja tener mas de 60 segundos un script en ejecucion. y con uno no puedo llamar a otro, porque se sigue considerando la misma ejecucion (obviamente).

pero bueno, me parece que es para tener en cuenta cuando necesito retrasos de menos de 1 minuto.

Gracias por la respuesta

Skeletron

Aclaro que ese Script PHP que enviaste, no es lo que buscamos en realidad. creo que ese mide la cantidad de tiempo que un script estuvo ejecutandose.

Pero podría hacer un SLEEP(1000), y luego un Insert. y de esa forma se inserta con 1 segundo de retraso desde que el Script llego a Sleep