alternativa a sleep

Iniciado por z_ane_666, 17 Mayo 2011, 00:56 AM

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

z_ane_666

buenas, quisiera ver si hay una alternativa al conocido sleep de PHP ya que la funcion "duerme" el script y yo quisiera que solo se realiza el retraso sin que se interrumpa el script

Un usuario de VB6 me ayudo con un problema similar y este es el codePublic Sub Wait(ByVal vToWait As Double)
Dim vDateE As String
vDateE = GetTickCount() + vToWait
Do While vDateE > GetTickCount()
'Call WaitMessage
DoEvents
Loop
End Sub


espero ayuda

[u]nsigned

Lo que decis no tiene sentido.

Primero considera que un script PHP es secuencial(se ejecuta todo de una sola vez), no orientado a eventos como VB6. Por lo que la unica forma de 'retrazarlo' es justamente durmiendolo.  :silbar:

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

merolhack

Hola,

yo hize algo así con Sesiones y AJAX.

Use jQuery para ejecutar un script cada 10 segundos y a los 10 segundos hace la llamada vía AJAX al archivo PHP que ejecuta algo, con la sesión guardo la info de lo que estoy haciendo!!

Saludos!
PHP Web Developer
Joomla, jQuery, MySQL, CSS, etc...

Android APP Developer http://android-dev.tumblr.com/

bomba1990

depende de que es lo que exactamente lo que quieres lograr porque retrasar algo por retrasar no tiene sentido, pero si quieres hacer que todos los scripts tarden por ejemplo 10seg, puedes agarrar y hacer que tu script se ejecute y calcule el tiempo que se a echado si se a echado menos de 10 seg hace sleep de lo que falta sino, pues bueno .Si es otra cosa lo puedes hacer por javascript.
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

WHK

#4
lo que quieres es hacer un hilo de proceso o evento donde vb6 haga esa espera pero en php los eventos e hilos de proceso no existen o por lo menos yo no se como realizar un evento, si te fijas es un sub no un function por lo tanto es evento.

Puedes hacer algo similar pero necesitarías escribir una o dos lineas al comienzo del script y al final... :

Código (php) [Seleccionar]
<?php
/* Inicio */
$ttime = array(
'start'=>time(),
'sleep'=>10,
'rest'=>0
); /* Simula sleep en evento de 10 segundos */

/* Todo el resto del codigo aca */

/* Final */
if(($ttime['rest'] = time() - (int)$ttime['start']) < $ttime['sleep'])
 
sleep($ttime['rest']);
?>


Lo que hace es por ejemplo le das 10 segundos de sleep, entonces el script se ejecutará y digamos que se ha demorado 1 segundo, entonces restan 9, asi que  hará un sleep de 9 segundos restantes.
Si el script se demora 15 segundos no hará sleep porque ya superó el tiempo del sleep.

Te sirve?

[u]nsigned

Supongo que lo que quería era crear proceso, la verdad que 0 de vb6 xD

Quizas esto te sirva..

De todas formas para lograr cosas descentes vas a tener que usar exec para lanzar los nuevos hilos a nivel de los proceso del S.O. (unix like).

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!