2010-03-21 80 views
1

我写过这个ruby守护进程,想知道是否有人可以看看它,并告诉我,如果我采取的方法是正确的。Ruby守护进程和频率

#!/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 

我觉得这最后的循环不太做正确的事,并且可以占用大量内存,但我不知道。另外,5分钟似乎永远不会每5分钟发生一次,我会看到4-6分钟的变化。

在此先感谢

回答

0

的时间差异可能来自service.update_from_feed_continuously需要多长时间。这是一个不平凡的计算,还是一个依赖于Web服务的计算(它们的延迟可能使许多客户端计算变得困难)。

不知道其余的结构,对不起!

+0

这正是我已经猜到。非常感谢 – 2010-03-22 09:20:46