# Tempo in ruby

**URL:** <https://www.ruby-forum.com/t/tempo-in-ruby/109004>\
**Category:** IT\
**Created:** [July 10, 2007, 4:00pm UTC](https://www.ruby-forum.com/t/tempo-in-ruby/109004 "2007-07-10T16:00:47Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![simone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cab0a1/32.png) [@simone](https://www.ruby-forum.com/u/simone)\
**Post date:** [July 10, 2007, 4:00pm UTC](https://www.ruby-forum.com/t/tempo-in-ruby/109004/1 "2007-07-10T16:00:47Z")

</div>

Salve. Premetto che sono un novizio di ruby, linguaggio che sto  
studiando da poco e che trovo spettacolare (provengo da php).

Passo subito alla domanda:  
Esiste un sistema (elegante) in ruby per eseguire un metodo ( o una  
serie di istruzioni) ad intervalli di tempo predefiniti? Esempio  
leggere dati da una porta seriale 1 volta al secondo?  
Spero di essere stato chiaro.  
Grazie.  
Simone

---

<div class="post-metadata">

**Author:** ![simone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cab0a1/32.png) [@simone](https://www.ruby-forum.com/u/simone)\
**Post date:** [July 10, 2007, 4:24pm UTC](https://www.ruby-forum.com/t/tempo-in-ruby/109004/2 "2007-07-10T16:24:50Z")

</div>

while true do  
p ‘Hi’  
sleep(1)  
end

Questo crea un loop infinito che una volta al secondo stampa la stringa  
‘Hi’.

LG

---

<div class="post-metadata">

**Author:** ![simone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cab0a1/32.png) [@simone](https://www.ruby-forum.com/u/simone)\
**Post date:** [July 10, 2007, 4:27pm UTC](https://www.ruby-forum.com/t/tempo-in-ruby/109004/3 "2007-07-10T16:27:51Z")

</div>

Dal ruby cookbook (un must assoluto), ricetta 3.12

def every\_n\_seconds(n)  
loop do  
before = Time.now  
yield  
interval = n-(Time.now-before)  
sleep(interval) if interval \> 0  
end  
end

every\_n\_seconds(5) do  
puts “At the beep, the time will be  
#{Time.now.strftime(”%X")}…beep!"  
end

Spero che lucas carlson non me ne voglia per averlo pubblicato 😉

Ma è per un buon motivo: ritengo che questo ilbro sia utilerrimo e spingo  
tutti a comprane una copia 😉

Bella  
jeko

---

<div class="post-metadata">

**Author:** ![simone](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/cab0a1/32.png) [@simone](https://www.ruby-forum.com/u/simone)\
**Post date:** [July 10, 2007, 5:36pm UTC](https://www.ruby-forum.com/t/tempo-in-ruby/109004/4 "2007-07-10T17:36:06Z")

</div>

Le proposte degli altri vanno benissimo; se hai bisogno di una soluzione  
‘seria’, dai un’occhiata a BackgrounDRB che è una libreria/plugin per  
eseguire degli “worker” ad intervalli preimpostati. È molto potente ed  
elegante.

🙂
