【问题标题】:Rails communication with web servicesRails 与 Web 服务的通信
【发布时间】:2015-12-04 08:15:52
【问题描述】:

我正在开发一个 Rails 网上商店应用程序,并且我设置了以下系统:

  • 2 个独立的 Web 服务(非常简单的 Rails 应用程序,代码相同,但数据库不同)
  • 主要的 Rails 应用程序,用于存储来自两个 Web 服务的信息。

主应用程序从两个 Web 服务(JSON 格式)中获取一些信息,并且必须选择项目(基于价格)。出于测试目的,我目前从两者中获取所有项目并将它们添加到主应用程序的数据库中。然而,当项目被存储在主数据库中时(使用简单的.create 和一个包含所有参数的哈希,它似乎会多次添加项目,因此需要很长时间。

首先,做这类事情的最佳策略是什么 - 从 Web 服务获取数据并存储它?另外,我想在什么时候要求更新主数据库?如果是每次用户连接,这似乎太多了。

【问题讨论】:

    标签: ruby-on-rails database


    【解决方案1】:

    我假设数据中有一个 id 的键值...如果没有,您应该定义一个。很可能是一个自动递增的整数 ID,因为它被标记为 rails。虽然您可能需要一个 UUID(可能是 SecureRandom.uuid),因为这两个数据源是相互独立的,这会增加 Rails 应用程序的复杂性

    在这种情况下,您可以使用 @model = Model.find_or_create_by(key_value: value) 来避免创建重复项,并使用 @model.update_attributes(基本上使用更新操作)来仅修改已更改的内容。

    【讨论】:

    • 我确实有一个 id 列,并且正在考虑将其用于此目的,但是这两个 Web 服务可能具有具有相同 id 的不同条目。我认为如果主应用程序必须协调 Web 服务的 id 会更复杂。
    • 那么您应该使用 uuid 或从数据中创建唯一的复合键
    猜你喜欢
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    相关资源
    最近更新 更多