Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: z_ane_666 en 17 Mayo 2011, 00:56 am



Título: alternativa a sleep
Publicado por: z_ane_666 en 17 Mayo 2011, 00:56 am
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 code
Código:
Public 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


Título: Re: alternativa a sleep
Publicado por: [u]nsigned en 17 Mayo 2011, 17:14 pm
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


Título: Re: alternativa a sleep
Publicado por: merolhack en 17 Mayo 2011, 18:30 pm
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!


Título: Re: alternativa a sleep
Publicado por: bomba1990 en 18 Mayo 2011, 01:25 am
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.


Título: Re: alternativa a sleep
Publicado por: WHK en 23 Mayo 2011, 19:13 pm
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
  1. <?php
  2. /* Inicio */
  3. $ttime = array(
  4. 'start'=>time(),
  5. 'sleep'=>10,
  6. 'rest'=>0
  7. ); /* Simula sleep en evento de 10 segundos */
  8.  
  9. /* Todo el resto del codigo aca */
  10.  
  11. /* Final */
  12. if(($ttime['rest'] = time() - (int)$ttime['start']) < $ttime['sleep'])
  13. sleep($ttime['rest']);
  14. ?>

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?


Título: Re: alternativa a sleep
Publicado por: [u]nsigned en 24 Mayo 2011, 05:35 am
Supongo que lo que quería era crear proceso, la verdad que 0 de vb6 xD

Quizas esto (http://bit.ly/jzFtPH) 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