【问题标题】:Does rails cache anything if an exception is raised?如果引发异常,rails 是否会缓存任何内容?
【发布时间】:2017-08-06 16:54:22
【问题描述】:

我想知道 Rails 在以下情况下是否缓存了任何内容:

  Rails.cache.fetch("some_key", expires_in: 1.day) do
    service.call # raises exception
    []
  end

我很担心,因为如果 Rails.cache.fetch 块内的请求失败,我想重试下一个请求。不让用户等待 24 小时后重试。

【问题讨论】:

    标签: ruby-on-rails caching


    【解决方案1】:

    否。如果引发异常,Rails 不会缓存任何内容。

    Rails Guides 表示将块的返回值写入缓存。

    当一个块引发异常时,它不会返回任何内容,因此不会缓存任何内容。

    【讨论】:

    • 我在文档中没有看到任何这样的行。这仍然有效吗?
    • 我相信它仍然有效。文档被重写,但仍然在那里解释了这个概念。我从答案中删除了过时的引用以避免混淆。
    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多