处理Rails.cache.fetch中的错误

聪明

我正在使用Rails.cache来缓存来自API的响应:

Rails.cache.fetch("key") do 
  api.get "/api/data"
  api.body
end

API不太可靠,偶尔会出现500错误。我想避免缓存500个响应。

Rails.cache.fetch("key") do 
  api.get "/api/data"
  if api.body.meta.status == 500
    # Bail out, Goose!
  end
  api.body
end

我宁愿不提出例外。在没有缓存的情况下“摆脱困境”的最佳方法是什么?

埃里克·赫策尔曼

我自己碰到了这个break问题,看来可以解决我们的问题。我只是针对memory_store和dalli_store在本地进行了测试,它避免了缓存块。因此,对于您的示例,请尝试以下操作:

Rails.cache.fetch("key") do 
  api.get "/api/data"
  break if api.body.meta.status == 500
  api.body
end

附带说明一下,如果使用dalli_store,它将不会缓存nil值,因此您只需从该块中返回nil。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Rails 4中处理AJAX调用(成功,错误,beforeSend,完成)

来自分类Dev

Ember和Rails,处理后端错误

来自分类Dev

将3.12升级到4,运行rails,在local_cache_middleware中获得堆栈级别太深的错误

来自分类Dev

如何强制Cache-Control在Rails 3.2.20中不存储

来自分类Dev

如何在Rails中处理数据库错误?

来自分类Dev

如何使用Rails.cache.fetch和memcache存储零?

来自分类Dev

在Rails中从Android处理JSON数组

来自分类Dev

Aurelia中fetch()的错误处理

来自分类Dev

如何使用Redux Thunk处理fetch()响应中的错误?

来自分类Dev

在Rails中处理多个域

来自分类Dev

数组作为Rails.cache.fetch方法中的第一个参数

来自分类Dev

如何处理fetch()中的错误请求

来自分类Dev

Rails 3中的异常处理

来自分类Dev

仅当新值不为nil时,带有expires_in的Rails.cache.fetch才会过期

来自分类Dev

处理Rails.cache.fetch中的错误

来自分类Dev

在Ruby on Rails中处理评论

来自分类Dev

在Rails 4中处理AJAX调用(成功,错误,beforeSend,完成)

来自分类Dev

将3.12升级到4,运行rails,在local_cache_middleware中获得堆栈级别太深的错误

来自分类Dev

如何强制Cache-Control在Rails 3.2.20中不存储

来自分类Dev

Rails错误处理/记录:简化的回溯

来自分类Dev

处理时遇到错误:/var/cache/apt/archives/click_0.4.38.5ubuntu0.2_amd64.deb

来自分类Dev

尽管ActionController :: Base.perform_caching = false,Rails.cache.fetch仍在馈送/获取缓存

来自分类Dev

处理UrlFetchApp.fetch()中的404错误

来自分类Dev

Rails.cache在不同的线程中不能缓存?

来自分类Dev

处理时遇到错误:/ var / cache / apt / archives / linux-image

来自分类Dev

处理时遇到错误:/var/cache/apt/archives/apport_2.20.1-0ubuntu2.4_all.deb

来自分类Dev

处理时遇到错误:/var/cache/apt/archives/snapd_2.32.9_amd64.deb

来自分类Dev

Rails.cache.fetch 不适用于 json 数组

来自分类Dev

为什么这个代码块在 Rails.cache.fetch 之后执行

Related 相关文章

  1. 1

    在Rails 4中处理AJAX调用(成功,错误,beforeSend,完成)

  2. 2

    Ember和Rails,处理后端错误

  3. 3

    将3.12升级到4,运行rails,在local_cache_middleware中获得堆栈级别太深的错误

  4. 4

    如何强制Cache-Control在Rails 3.2.20中不存储

  5. 5

    如何在Rails中处理数据库错误?

  6. 6

    如何使用Rails.cache.fetch和memcache存储零?

  7. 7

    在Rails中从Android处理JSON数组

  8. 8

    Aurelia中fetch()的错误处理

  9. 9

    如何使用Redux Thunk处理fetch()响应中的错误?

  10. 10

    在Rails中处理多个域

  11. 11

    数组作为Rails.cache.fetch方法中的第一个参数

  12. 12

    如何处理fetch()中的错误请求

  13. 13

    Rails 3中的异常处理

  14. 14

    仅当新值不为nil时,带有expires_in的Rails.cache.fetch才会过期

  15. 15

    处理Rails.cache.fetch中的错误

  16. 16

    在Ruby on Rails中处理评论

  17. 17

    在Rails 4中处理AJAX调用(成功,错误,beforeSend,完成)

  18. 18

    将3.12升级到4,运行rails,在local_cache_middleware中获得堆栈级别太深的错误

  19. 19

    如何强制Cache-Control在Rails 3.2.20中不存储

  20. 20

    Rails错误处理/记录:简化的回溯

  21. 21

    处理时遇到错误:/var/cache/apt/archives/click_0.4.38.5ubuntu0.2_amd64.deb

  22. 22

    尽管ActionController :: Base.perform_caching = false,Rails.cache.fetch仍在馈送/获取缓存

  23. 23

    处理UrlFetchApp.fetch()中的404错误

  24. 24

    Rails.cache在不同的线程中不能缓存?

  25. 25

    处理时遇到错误:/ var / cache / apt / archives / linux-image

  26. 26

    处理时遇到错误:/var/cache/apt/archives/apport_2.20.1-0ubuntu2.4_all.deb

  27. 27

    处理时遇到错误:/var/cache/apt/archives/snapd_2.32.9_amd64.deb

  28. 28

    Rails.cache.fetch 不适用于 json 数组

  29. 29

    为什么这个代码块在 Rails.cache.fetch 之后执行

热门标签

归档