Dile al programa Ruby que espere un poco de tiempo


¿Cómo le dice a un programa Ruby que espere una cantidad arbitraria de tiempo antes de pasar a la siguiente línea de código?

 342
Author: Eric Leschinski, 2009-08-25

3 answers

Es bastante fácil:

sleep(num_secs)

El valor 'num_secs' puede ser un entero o flotante. Además, si está escribiendo esto dentro de una aplicación Rails, o ha incluido la biblioteca ActiveSupport en otro lugar de su proyecto, puede construir intervalos más largos utilizando la siguiente sintaxis de conveniencia:

sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
#Or shorter
sleep(0.5) #Half a second
 546
Author: rcoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-18 12:33:51

Use sleep así:

sleep 2

Que va a dormir durante 2 segundos.

Tenga cuidado de dar un argumento. Si solo ejecuta sleep, el proceso dormirá para siempre. (Esto es útil cuando quieres que un hilo duerma hasta que se despierte.)

 107
Author: Clinton N. Dreisbach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-25 18:11:10

sleep 6 dormirá durante 6 segundos. Para una duración más larga, también puede usar sleep(6.minutes) o sleep(6.hours).

 2
Author: vijaya chowdary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-04 18:07:04