1

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

  • 所有数据都来自对第 3 方的 SOAP 请求
  • 一个后台任务将每 10 秒发出一次这个肥皂请求
  • 后台任务将解析​​响应,然后相应地更新 ActiveRecord 模型
  • 数据根本不会写入数据库,如果应用程序失败,当我们启动它时,数据将再次来自soap请求
  • 用户将向应用程序发出请求,该应用程序将简单地显示模型中的数据(即来自soap 请求)。

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

我想所有这一切都可以通过一些宝石完全简单地完成,但是我在分类满足我的要求和不满足要求时遇到了一些麻烦。

谢谢

4

2 回答 2

1

如果 WebService 的结果真的没有改变,我会推荐 Rails 缓存机制。在 Rails 应用程序的任何地方,您都可以:

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

这将只在块内完成一次工作,并在将来从 rails 缓存存储中获取其结果。

缓存存储有多种类型(其中一种是 memcache 存储)。我通常将文件存储用于中等流量站点,但您可以选择另一个: http: //guides.rubyonrails.org/caching_with_rails.html

于 2012-04-25T13:53:52.710 回答
1

我不确定在这种情况下使用 ActiveRecord 有什么好处。

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

于 2012-04-25T08:59:27.513 回答