我必须调用 externals API 来填充我的数据库,每小时托管在 Heroku 上。
为此,我有一个 ruby 脚本,它从外部 API 获取所有数据并在标准输出上输出。现在,我想将这些结果存储在我的数据库中,我有不同的方法来做到这一点(如果你知道更好的方法,请发表评论)。
我有什么(约束):
- 在 Heroku 上运行的 Ruby on Rails 应用程序
- PG 数据库托管在 Heroku 上
- “汽车”模型,具有“标题”、“描述”、“价格”属性和 1 个来自“用户”模型的其他嵌套属性(因此 PG 中的模式相同)。
- 查询不同外部 API 的 Ruby 脚本
- Ruby 脚本必须每小时/2 小时/天调用一次。该脚本将运行大约 10 分钟 -> 2 小时,具体取决于结果的数量
我的 3 种不同的方法:
- 在 EC2 实例上运行脚本,并使用外部登录直接填充我的数据库,而不是通过 Ruby on Rails REST API。问题是它从不要求 Ruby on Rails 验证器,例如,如果我的数据库发生更改,或者我必须验证一些数据,它就不会。
- 在 EC2 实例上运行脚本,并用 cll 填充我的数据库到我的 RoR REST API,因此用 JSON / XML 填充数据。问题是我认为如果我有超过 1000 个来自 API 的调用,它会使我的测功机承受高负载。
- 在 Heroku 上的特定测功机上运行我的脚本(我需要一些信息,我在 Heroku 上找不到一些信息)
- (如果您知道更好的方法,请发表评论)
你怎么看 ?我需要一些真正进化的东西,如果明天我改变我的“汽车”模型,一切都必须很容易在新旧模型之间进行切换。
谢谢你。