如果引发异常,rails会缓存吗?

时间:2017-03-15 18:57:11

标签: ruby-on-rails caching

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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