2009-08-25 19 views

risposta

493

E 'abbastanza facile:

sleep(num_secs) 

Il valore '' num_secs può essere un numero intero o float. Inoltre, se si sta scrivendo questo all'interno di un'applicazione Rails, o hanno incluso la libreria ActiveSupport altrove nel progetto, è possibile costruire intervalli più lunghi utilizzando la seguente sintassi convenienza:

sleep(4.minutes) 
# or, even longer... 
sleep(2.hours); sleep(3.days) # etc., etc. 
#Or shorter 
sleep(0.5) #Half a second 
96

Usa sleep in questo modo:

sleep 2 

Che sarà sonno per 2 secondi.

Attenzione a dare una discussione. Se esegui semplicemente sleep, il processo verrà interrotto per sempre. (Questo è utile quando si desidera un filo a dormire fino a quando è svegliato.)

+1

Aspetta, dormirà per sempre, o finché non sarà "svegliato"? Cosa significa "svegliato"? – anthropomorphic

+4

@anthropomorphic Si riferisce a quando un altro thread chiama Thread # eseguito. –

+0

In realtà, quando un altro thread chiama Thread # wakeup, suppongo. – chesterbr

2

sleep 6 dormirà per 6 secondi. Per una durata maggiore, puoi anche utilizzare sleep(6.minutes) o sleep(6.hours).

+2

Non sono sicuro dei downvotes su questo, ma potrebbe essere che 'minutes()' e 'hours()' sono metodi su numeri aggiunti da Ruby on Rails - quindi non standard disponibili in Ruby - nella classe ActiveSupport :: Duration. Sono abbastanza convenienti però. –

Problemi correlati