Ruby on rails Rails应用程序,无数据库,不断更新模型

Ruby on rails Rails应用程序,无数据库,不断更新模型,ruby-on-rails,activerecord,soap,Ruby On Rails,Activerecord,Soap,我想知道开发具有以下特性的rails应用程序的最佳方法是什么: 所有数据都来自对第三方的SOAP请求 后台任务将每隔10秒发出此soap请求 后台任务将解析响应,然后相应地更新ActiveRecord模型 数据根本不会写入数据库,如果应用程序失败,当我们启动它备份时,数据将再次来自soap请求 用户将向应用程序发出请求,该应用程序将仅显示模型中的数据(即来自soap请求) 这样做的目的是避免对每个用户发出SOAP请求,因为数据不会经常更改。不使用数据库可以避免读取和写入仅来自请求的数据 我想

我想知道开发具有以下特性的rails应用程序的最佳方法是什么:

  • 所有数据都来自对第三方的SOAP请求
  • 后台任务将每隔10秒发出此soap请求
  • 后台任务将解析响应,然后相应地更新ActiveRecord模型
  • 数据根本不会写入数据库,如果应用程序失败,当我们启动它备份时,数据将再次来自soap请求
  • 用户将向应用程序发出请求,该应用程序将仅显示模型中的数据(即来自soap请求)
这样做的目的是避免对每个用户发出SOAP请求,因为数据不会经常更改。不使用数据库可以避免读取和写入仅来自请求的数据

我想,所有这一切都可以非常简单地用一些宝石,但我有一点困难,通过排序什么符合我的要求和什么不符合


谢谢

我不确定在这种情况下使用ActiveRecord会给您带来什么好处


也许考虑SOAP调用的其他类型的持久性?

< P>如果WebService的结果确实没有改变,我建议Rails缓存机制。在Rails应用程序中的任何位置,您都可以执行以下操作:

Rails.cache.fetch "a_unique_cache_key" do
  ... do your SOAP request and return the result
end
这将只在块内执行一次工作,并在将来从rails缓存存储中获取其结果

缓存存储可以是各种类型(其中一种是memcache存储)。我通常选择中等流量站点的文件存储,但您可以选择其他站点:

使用memcache而不是activerecord怎么样?使用activerecord的好处是,我可以使用所有内置函数使用各种查询生成报告。不幸的是,数据的使用频率相当高(不是很高,可能一分钟4到5次)。数据变化和我们不关心历史数据是不使用数据库的两个原因。