代码之家  ›  专栏  ›  技术社区  ›  Marcos Placona

Ruby守护进程和频率

  •  1
  • Marcos Placona  · 技术社区  · 16 年前

    我已经编写了这个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 回复  |  直到 16 年前
        1
  •  0
  •   Alex Mcp    16 年前

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

    不过,对其余部分的结构还不确定,对不起!

        2
  •  1
  •   Michael Kohl    16 年前

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

    Ruby Daemons: Verifying Good Behavior

    推荐文章