使用远程JSON数据每30秒更新一次MongoDB?

时间:2013-04-27 18:13:26

标签: ruby-on-rails json mongodb

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

解析像这样的JSON数据

require 'open-uri'

require 'json'

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

我如何每30秒更新一次MongoDB?

2 个答案:

答案 0 :(得分:1)

使用rufus-schedular gem,它工作正常。

Gemfile中的

gem 'rufus-scheduler', :require => "rufus/scheduler"

在config / initializers / reminder_sheduler.rb

scheduler = Rufus::Scheduler.start_new

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

答案 1 :(得分:0)

Cron是重复工作的常用解决方案,从cron-job开始,您可以启动脚本/运行程序Rails脚本或rake任务。

我应该提到,对于Cron,最细的粒度是1分钟。

另一个解决方案是创建一个后台作业,它以Daemon运行并基本上运行一个连续循环:加载远程JSON,休眠30秒,加载远程JSON,休眠,...... / p>

查看这些Railscast:

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