Ruby守护进程和频率

时间:2010-03-21 22:36:24

标签: ruby-on-rails ruby daemon

我写过这个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分钟的变化。

提前致谢

2 个答案:

答案 0 :(得分:1)

一年前有一篇非常有趣的文章:

Ruby Daemons: Verifying Good Behavior

答案 1 :(得分:0)

时间差异可能来自service.update_from_feed_continuously需要多长时间。这是一个非平凡的计算还是依赖于Web服务的计算(它们增加的延迟可能使许多客户端计算相形见绌)。

不确定其余部分的结构,抱歉!