2012-04-25 80 views
1

我想知道什么是最好的方式去发展,具有以下特点Rails应用程序:Rails应用程序

  • 所有数据都来自一个SOAP请求到第3党
  • 后台任务将会使这个SOAP请求每10秒〜
  • 后台任务将解析​​响应,然后更新ActiveRecord模型相应
  • 如果应用程序中的数据不会写入数据库可言,失败,当我们开始备份时,数据将来自于肥皂请求
  • 用户将向应用程序发出请求,该应用程序将简单地在模型中显示数据(即,来自肥皂请求)。

这个想法是为了避免为每个用户提出SOAP请求,因为数据不会经常更改。不使用数据库可以避免读取和写入只能来自请求的数据。

我想,这一切完全可以很简单的几个宝石,但我已经有点麻烦排序是通过什么符合我的要求,哪些没有。

感谢

+1

什么? – sailor 2012-04-25 08:38:31

回答

1

我不知道你在这种情况下使用ActiveRecord得到什么好处。

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

+0

使用ActiveRecord的好处是,我可以使用所有内置函数来使用各种查询生成报告。 – brimble2010 2012-04-28 00:30:31

1

如果结果形成的WebService真的不改变,我会建议Rails的缓存机制。只要在你的Rails应用程序,你可以这样做:

Rails.cache.fetch "a_unique_cache_key" do 
    ... do your SOAP request and return the result 
end 

这将做的工作块内只有一次,并获取在未来轨道缓存存储它的结果。

缓存存储为各种类型(其中之一是内存缓存存储)。我通常用中等流量的网站的文件存储,但您可以选择其他: 有关使用的memcache代替的ActiveRecord的http://guides.rubyonrails.org/caching_with_rails.html

+0

不幸的是,数据相当频繁(不是很多的负载,一分钟内可能是4或5次)。数据变化以及我们不关心历史数据的事实是不使用数据库的两个原因。 – brimble2010 2012-04-28 00:32:03