Ruby on Rails如何在ActiveRecord模型中缓存来自外部源的部分数据

问题描述 投票:0回答:1

这是我的第一个问题,因此,如果您觉得我正在做任何主要/次要的人造舞步,请告诉我。谢谢。

版本:

  • Ruby-2.5.3
  • Rails-5.0.3

我有一个现有的ActiveRecord数据模型。由于API中提供了信息,因此数据模型中的字段已变得多余,无法手动更新。我想从外部API检索,填充和缓存其中的某些字段。

由于大多数实体使用数据模型CRUD,所以我修改了数据模型以始终检查缓存的数据,如果TTL失效,请从API中重新提取。

Rails或Ruby中是否存在允许我执行此操作的机制?

似乎有用于更新的ActiveRecord验证钩子,但没有可用于检索的钩子。

我还是Ruby on Rails的新手,但搜索结果并不理想。

非常感谢您提供的任何帮助!

ruby-on-rails ruby ruby-on-rails-5
1个回答
0
投票

我能够使用after_find钩子来预填充结果,并保存它(如果更新时间在某个可配置的时间段之后)。不幸的是,如果我要为每个结果(咳嗽,所有这些)进行API调用,那么这种方法的扩展性就不好。

我最终创建了一个定期运行的rake任务,该任务会定期调用外部API来更新部分记录结果。

这似乎不能满足我所寻找的客观答案,因此我不会将其标记为结果。感谢所有查看并考虑回答此问题的人。

© www.soinside.com 2019 - 2024. All rights reserved.