开发者

Permanent daemon for quering a web resource

I have a rails 3 application and looked around in the internet for daemons but didnt 开发者_运维百科found the right for me..

I want a daemon which fetches data permanently (exchange courses) from a web resource and saves it to the database..

like:

while true
  Model.update_attribte(:course, http::get.new("asdasd").response)
end

I've only seen cron like jobs, but they only run after a specific time... I want it permanently, depending on how long it takes to end the query...

Do you understand what i mean?


The gem light-daemon I wrote should work very well in your case.

http://rubygems.org/gems/light-daemon


You can write your code in a class which has a perform method, use a queue system like this and at application startup enqueue the job with Resque.enqueue(Updater).

Obviously the job won't end until the application is stopped, personally I don't like that, but if this is the requirement.

For this reason if you need to execute other tasks you should configure more than one worker process and optionally more than one queue.

If you can edit your requirements and find a trigger for the update mechanism the same approach still works, you only have to remove the while true loop

Sample class needed:

Class Updater
  @queue = :endless_queue
  def self.perform
    while true
      Model.update_attribute(:course, http::get.new("asdasd").response)
    end
  end
end


Finaly i found a cool solution for my problem:

I use the god gem -> http://god.rubyforge.org/

with a bash script (link) for starting / stopping a simple rake task (with an infinite loop in it).

Now it works fine and i have even some monitoring with god running that ensures that the rake task runs ok.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜