我正在将远程JSON数据解析为MongoDB,实际上我正在解析动态JSON数据,但我想用动态数据每30秒更新一次MongoDB。
解析像这样的JSON数据
require 'open-uri'
require 'json'
result = JSON.parse(open("url_of_json_service").read)
我如何每30秒更新一次MongoDB?
答案 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: