2010-03-21 4 views
1

J'ai écrit ce démon ruby, et je me demandais si quelqu'un pouvait le voir, et dites-moi si l'approche que j'ai prise est correcte.Démons rubis et fréquence

#!/usr/bin/env ruby 

require 'logger' 

# You might want to change this 
ENV["RAILS_ENV"] ||= "production" 

require File.dirname(__FILE__) + "/../../config/environment" 

$running = true 
Signal.trap("TERM") do 
    $running = false 
end 

service = Post.new('http://feed.com/feeds') 
logger = Logger.new('reader.log') 

while($running) do 
    # Log my calls 
    logger.info "Run at #{Time.now}" 

    service.update_from_feed_continuously 
    # only run it every 5 minutes or so 
    sleep 300 
end 

Je me sens comme cette dernière boucle est pas tout à fait la bonne chose à faire, et peut être gourmand en mémoire, mais je ne suis pas sûr. En outre, les 5 minutes semblent ne jamais se produire exactement toutes les 5 minutes, et je verrai des variations de 4-6 minutes.

merci à l'avance

Répondre

0

L'écart de temps pourrait venir de combien de temps prend service.update_from_feed_continuously. Est-ce un calcul non trivial ou qui repose sur un service web (leurs retards ajoutés pourraient éclipser de nombreux calculs côté client).

Pas sûr de la structure du reste, désolé!

+0

C'est exactement ce que je l'ai deviné. Merci beaucoup –