0

所以我的应用程序(rails)的核心数据依赖于来自外部站点的数据。但是我对如何处理不重复查询外部站点的数据以及是否应该将数据转换为本地持久对象感到有点迷茫。我知道 Rails 和 ActiveRecord 都提供了缓存方式。

基本上,我以散列数组的形式检索 Classroom 课程信息,每个散列代表一个课程对象。此外,每个课程对象都保留一个 URI,用于从外部 REST 服务检索特定课程信息。

我目前正在考虑类似的事情:

  • 将外部数据映射到持久化到本地数据库的对象
  • 利用 Rails 缓存并设置过期日期。
  • 更新(不确定):当从 Rails 缓存中检索记录时,如果过期,以某种方式将其设置为使用外部站点提供的 URI 从外部源检索该课程。也许这就是服务?

以上有什么建议吗?

4

1 回答 1

0

使用第一个选项——将外部数据映射到你自己的模型中,该模型会持久化到你的数据库中——只要你有一种同步数据的合理方式就可以了。

我和一些工作人员一起使用sidekiq来不断轮询更改并更新我的本地记录。如果外部服务提供某种方式来告知其数据何时发生更改(例如发布到Superfeedr之类的服务,或者提供一些包含有关其他提要的元数据的提要),而不是强制客户端提取数据并检查更改,那会更好。无论哪种方式,您仍然需要更新已更改的内容,并且使用后台工作人员进行管理可能是要走的路。

于 2013-01-20T21:53:36.983 回答