¿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?
418
Me gusta esto:
sleep(num_secs)
El num_secs
valor 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 su proyecto, puede construir intervalos más largos utilizando la siguiente sintaxis:
sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second
Me parece
until
muy útil con el sueño. ejemplo:fuente
sleep(10.seconds)
until
se puede usar para dormir hasta que se logre cualquier condición (también me encanta lo natural que se siente la sintaxis)sleep 6
dormirá por 6 segundos. Para una mayor duración, también puede usarsleep(6.minutes)
osleep(6.hours)
.fuente
minutes()
yhours()
son métodos en números agregados por Ruby on Rails, por lo que no está disponible de forma estándar en Ruby, en la clase ActiveSupport :: Duration. Sin embargo, son bastante convenientes.Implementación de segundos / minutos / horas, que son métodos de rieles. Tenga en cuenta que los retornos implícitos no son necesarios, pero se ven más limpios, por lo que los prefiero. No estoy seguro de que Rails tenga .days o si va más allá, pero estos son los que necesito.
Después de esto, puede hacer:
sleep 5.seconds
dormir durante 5 segundos. Tu puedes hacersleep 5.minutes
para dormir durante 5 min. Puedes hacerlosleep 5.hours
para dormir durante 5 horas. Y finalmente, puedesleep 5.days
dormir 5 días ... Puede agregar cualquier método que devuelva el valor de self * (cantidad de segundos en ese período de tiempo). Como ejercicio, ¡intente implementarlo durante meses!fuente