如何在 Rails 中每天缓存一个值?

2024-05-05

在 Rails 中每天缓存一个值的最佳方法是什么?

我有一个可通过 API 访问的数据库调用,我想每天制作并存储它。

做到这一点的最佳方法/做法是什么?


假设你有一个widget_price您只想每 24 小时更新一次。通常你使用Widget.calculate_daily_price获取每日价格,但运行时间太长,会减慢您的网页速度。

widget_price = Widget.calculate_daily_price

使用 Rails.cache.fetch 包装该调用,并在 24 小时内使结果过期。

widget_price = Rails.cache.fetch('widget_price', expires_in: 24.hours) do
  Widget.calculate_daily_price
end

现在,如果 widget_price 已被缓存,则将使用缓存的值并且该块将被忽略。如果运行时缓存已过期,则将执行该块并将缓存设置为新值并持续 24 小时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Rails 中每天缓存一个值? 的相关文章

  • 如何将枚举作为字符串存储到rails中的数据库中

    如何在 ruby 中创建迁移 其中默认值是字符串而不是整数 我想将枚举存储到数据库中 但我不想将其存储为整数 因为这样对于另一个应用程序来说没有意义想要使用同一张桌子 我该怎么做default female 代替default 0 clas
  • 装饰 Rails 中的属性

    我有一个name上的属性Person模型 每次我访问name属性 我想要name capitalize被退回 在模型内执行以下操作将不起作用 def name name capitalize end 那么还有什么选择呢 我建议您使用自定义格
  • 如何从 Rails 项目中删除 gem?

    我正在尝试从我的项目中删除一个 gem 因此我进入了 gem 文件并将其注释掉 gem some gem gem gem I dont want gem another gem 然后我跑 bundle 为了检查宝石是否消失 我输入 bund
  • 如何验证单选按钮?

    我的 Rails 应用程序中有一个单选按钮 我想编写一个 java 脚本代码 在未选择任何选项时验证这一点 在你的 votes 类中做类似的事情 class Myvotes lt ActiveRecord Base validates vo
  • 可以通过 url 发送 JSON 吗?

    我有一个 ruby 哈希 其中键是 url 值是整数 我将哈希值转换为 JSON 我想知道是否能够通过 AJAX 请求在 url 内发送 JSON 然后从 params 哈希值中提取该 JSON 另外 我将把 JSON 化的 ruby 哈希
  • Rails 中的漂亮路径

    我有一个类别模型 我使用默认的脚手架来路由它resources categories 我想知道是否有办法改变路径 category id to category name 我补充道 match categories name gt cate
  • ActiveAdmin 注册页面和资源列表

    在使用ActiveAdmin register page and ActiveAdmin register 如何获取注册页面和资源的列表 假设您使用的是默认命名空间 admin 您可以对 ActiveAdmin 0 6 1 执行以下操作 r
  • watir selenium:浏览器构造函数无法识别的参数

    在我的 Rails 应用程序中 我有一个 nokogiri watir 爬虫 运行良好 在我升级了 gems 也升级了例如 selenium 后 当我使用以下命令打开爬虫浏览器时 BROWSER OPTIONS w headless no
  • 如何检查用户电子邮件的唯一性并将结果传递给 jQuery?

    我有这个问题 我正在控制器中检查用户电子邮件并发送 json 成功响应 如果已获取 并添加输入的 css 样式 我还需要阻止提交并添加一些消息 这是我的检查电子邮件操作 使用本文 http paydrotalks com posts 45
  • 实施单表继承后,Rails 路由损坏

    我已经为 person 类实现了单表继承 class Person lt ActiveRecord Base end class Teacher lt Person end class Student lt Person end class
  • RefineryCMS 2.1.0 和 Zurb 4 带有下拉导航的顶部菜单

    我正在尝试使用 Zurb Foundation 来设计使用最新版本的 Refinery 构建的应用程序 我开始遵循本指南 http blog flatironschool com post 54511602806 build a blog
  • 将 Rails 更新到特定版本

    如何将 Rails 更新到特定版本 我的本地计算机上有 Rails 3 2 2 但我需要更新到版本 3 2 3 如果我执行gem update rails 将会更新到最新的3 2 6版本 我怎样才能做到这一点 gem install rai
  • 测试 rake 任务中定义的方法

    我想测试 rake 任务中定义的方法 耙文件 lib tasks simple task rake namespace xyz do task simple task gt environment do begin if task need
  • Rails:通过 Ajax 传递参数

    我需要通过 javascript 将参数传递回服务器 目前 我将它们传递给 JavaScript 如下所示 sendParams 然后像这样将它们发回 function sendParams q ajax url mymodel myact
  • 在我的 gemfile 中指定来自 Github 的 gem 的分叉版本时出现“无法找到 gem”错误

    我正在尝试使用这个分叉版本 http github com railsdog searchlogicsearchlogic gem 的 在我的 gemfile 中 我有 gem searchlogic git gt http github
  • 将回形针 url 添加到 json

    通常在 html 中 我们会在图像标签内使用 Model field url thumb 如何在 json 上执行此操作 尤其是使用 hash secret 如果这对任何人都有帮助 我找到了一个很好的方法来做到这一点 class MyMod
  • 解码 JavaScript Web 令牌 (JWT) 的到期日期?

    我无法理解应用程序中嵌入的 JWT 的到期日期格式 例如 1473912000 这翻译成什么 1473912000 毫秒 某个 x 日期 任何帮助将不胜感激 正如詹姆斯所指出的 该数字是自 1970 年 1 月 1 日以来的秒数 这被转换成
  • Rails api 中阻止用户配置文件的最佳 HTTP 状态代码是什么?

    我在 Rails 中为社交应用程序编写了一个 API 这个应用程序就像Facebook一样 用户可以阻止其他用户 如果用户 A 阻止用户 B 则用户 B 无法查看用户 A 的个人资料页面 那么我应该返回的最佳 HTTP 代码状态是什么 40
  • 邪恶的pdf在两页上渲染最后一行

    我在用邪恶 pdf https github com mileszs wicked pdf生成 pdf 我面临的问题是 有时它会跨两页显示页面中的最后一行 如果 wicked pdf 无法容纳该页面中的整个行 或者对页面中的行数设置限制 有
  • URI::InvalidURIError(错误的 URI(不是 URI?):nil)Active Storage service_url

    配置信息 rails version 6 0 ruby version 2 7 0 gem image processing gt 1 2 存储 yml local service Disk root 开发 rb config active

随机推荐

  • DrawerLayout 第一次打开有点步骤

    我有一个 DrawerLayout 当我第一次滑动它时 它是逐步出现的 比如滞后或类似的东西 但之后它移动得很好 我不知道要发布什么代码 因为正如我所说 它工作正常 只是第一次打开它时 它打开不顺利 这是我的布局
  • 在隐藏字段中创建 has_many 关联

    说用户 has many Things 在用户表单中 我想要一个隐藏字段 它可以让我在这个新用户和预先存在的事物 例如 id 8 之间创建关系 以下代码片段有什么问题 我想我只是忘记了一些语法 对于后代 如果您有多个 事物 值需要以数组形式
  • 选择特定值之后的项目

    说这是我的sql SELECT title author ISBN FROM bs books ORDER BY ISBN LIMIT 3 它只是从某个表中选择所有内容 标题 作者等 假设我想选择某个标题后面的所有项目 而不是按字母顺序或其
  • Servlet 包含 Tomcat 中的 HTTP 标头

    我有一个 servlet 它的请求调度程序包含另一个 servlet 包含的 servlet 设置了我想在包括小服务程序 因此 我在 include 方法中传入一个自定义 HTTPResponse 对象 该对象捕获来自 servlet 的所
  • 在 Xcode 中添加较大的 Power 值

    我是 Objective C 和 iPhone 开发的新手 我正在使用基本计算器 我想在文本字段中添加一个大值 如何在 Xcode 中显示像这样的大值 6 67543 x 10 34 谢谢 您可以使用 NSNumberFormatterSc
  • C 中的数组初始化

    我对以下代码有疑问 int main int array1 1 2 3 4 5 error in c warning in c int array2 1 2 3 4 5 int array3 5 1 2 3 4 5 这段代码在第 3 行给出
  • 在 Python 3.5 64 位上通过 pip 安装 OpenCV

    我尝试安装 OpenCV 但找不到任何合适的 pip 软件包 我决定上网查找有关如何安装它的官方文档 并发现this https opencv python tutroals readthedocs io en latest py tuto
  • DbContext 因 PrimitiveType != null 错误而崩溃

    使用 Entity Framework Code First Web 应用程序在调用 DbContext 时崩溃 并出现以下错误 断言失败 表达式 primitiveType null 描述 断言失败 primitiveType null
  • 如何正确定向从 AVCaptureVideoDataOutputSampleBufferDelegate 生成的图像

    我在用着AVCaptureVideoDataOutputSampleBufferDelegate我收到一个CMSampleBufferRef我将其转换为UIImage 但生成的图像方向不正确 Get a CMSampleBuffer s C
  • bitblt 在 Windows 10 版本 1703 上失败 (15063.138)

    使用 Visual Studio 2017 vc141 以下代码应该从前游戏窗口获取屏幕截图 但现在它返回黑色和空白图像 唯一的游戏问题 尝试过 OpenGL 和 Vulkan ogl 返回黑色 vulkan 返回白色 在升级到 Windo
  • 是否可以在 Flutter 中创建自定义快速设置图块?

    我搜索了 Flutter 文档并用谷歌搜索了这个 但结果为零 我正在开发我的第一个 Android Flutter 应用程序 我想为其创建一个自定义的快速设置图块 我的目标是牛轧糖及以上 我知道这在 Java 和 Kotlin 中是可能的
  • ios safari - getUserMedia 无法正常工作

    我真的有this https stackoverflow com q 45692526 6048715问题 但 OP 的解决方案对我不起作用 重申一下 我正在使用navigator mediaDevices getUserMedia 在浏览
  • 生成非连续组合

    我正在尝试创建一个生成器 支持执行 next 的迭代器 可能在 python 中使用yield 它给出来自 1 2 n n 和 r 是参数 的 r 元素的所有组合 这样在选出的r个元素 没有两个是连续的 例如 对于 r 2 且 n 4 生成
  • 如何在 Linux 上调用 Python 中的内联机器代码?

    我正在尝试从 Linux 上的纯 Python 代码调用内联机器代码 为此 我将代码嵌入到字节文字中 code b x55 x89 xe5 x5d xc3 然后打电话mprotect http www kernel org doc man
  • Google Analytics 是否具有针对长时间运行的网络应用程序的“心跳”功能?

    我正在制作一个专注于观看嵌入内容的网络应用程序 我希望应用程序客户端向 GA Google Analytics 发送 心跳 类型的信号以保持会话继续进行 现在看来 如果访问者观看视频 5 10 分钟 GA 就会假设他已经离开页面 并将用户的
  • 使用未解析的运算符 <=

    我正在尝试使用 Swift 3 for 循环 但没有成功 这是我所拥有的 for assumedPayRate Double in 0 25 lt billRate where assumedPayRate 0 25 On the lt 它
  • Google PubSub 在阻止和等待消息时没有标准输出

    我正在使用这个问题底部的 Python 代码监听 Google PubSub 消息 它实际上是来自 Google 的异步拉取示例 我运行我的程序并输出到文件 python my script py tee log txt 如果我在接收消息时
  • C# 隐式更新传递给没有返回类型且没有 out 或 ref 使用的方法的参数

    这对我来说太时髦了 显然开发人员应该使用关键字 out 但我不敢相信这竟然有效 public BusinessResponse
  • 将引导加载程序存储在软盘映像上的哪里?

    我将编写并测试引导加载程序 为了做到这一点 我计划将引导加载程序复制到软盘映像文件上并将其安装在虚拟机中 但是 我不确定将引导加载程序的机器代码放在哪里 它是否只是转储到文件的前几个字节中 软盘的引导扇区是第一个扇区 如果您谈论的是原始软盘
  • 如何在 Rails 中每天缓存一个值?

    在 Rails 中每天缓存一个值的最佳方法是什么 我有一个可通过 API 访问的数据库调用 我想每天制作并存储它 做到这一点的最佳方法 做法是什么 假设你有一个widget price您只想每 24 小时更新一次 通常你使用Widget c