2013-04-27 87 views
2

我正在解析远程JSON数据到MongoDB,实际上我解析的是动态JSON数据,但是我想用动态数据每30秒更新一次MongoDB。使用远程JSON数据每30秒更新一次MongoDB?

解析JSON数据这样

require 'open-uri' 

require 'json' 

result = JSON.parse(open("url_of_json_service").read) 

我如何为每30秒更新MongoDB的?

回答

1

使用鲁弗斯 - 程序器宝石和它的正常工作。

中的Gemfile

gem 'rufus-scheduler', :require => "rufus/scheduler" 
在配置/初始化/ reminder_sheduler.rb

scheduler = Rufus::Scheduler.start_new 

scheduler.cron("0 5 * * *") do 
    Model.send_reminder_email 
end 

0

Cron是定期作业的常用解决方案,您可以从cron-job启动脚本/ runner Rails脚本或rake任务。

我应该提到,与Cron最好的粒度是1分钟。

另一种解决方案是创建后台作业,它运行作为Daemon和基本上运行一个连续的循环:加载远程JSON,睡袋30秒,加载远程JSON,睡觉,...

看看这些Railscasts:

http://railscasts.com/episodes/164-cron-in-ruby-revised

http://railscasts.com/episodes/164-cron-in-ruby

http://railscasts.com/episodes/129-custom-daemon

的Cron:

http://en.wikipedia.org/wiki/Cron