¿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_secsvalor 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
untilmuy útil con el sueño. ejemplo:fuente
sleep(10.seconds)untilse puede usar para dormir hasta que se logre cualquier condición (también me encanta lo natural que se siente la sintaxis)sleep 6dormirá 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.secondsdormir durante 5 segundos. Tu puedes hacersleep 5.minutespara dormir durante 5 min. Puedes hacerlosleep 5.hourspara dormir durante 5 horas. Y finalmente, puedesleep 5.daysdormir 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