gpt4 book ai didi

heroku - 在 Heroku 上使用 Dalli 的片段缓存 Jbuilder

转载 作者:行者123 更新时间:2023-12-01 15:13:56 24 4
gpt4 key购买 nike

我正在尝试将片段缓存与 Jbuilder 一起使用,因为其中一个 View 需要相当多的时间来渲染(只有 View 渲染可能需要 2500 毫秒以上

请注意,这在其他调用中确实有效,但这个似乎不起作用,我也不知道为什么。第二:这在我的本地机器上有效,但在 heroku 中失败。

这是 heroku 中的错误:

2013-09-18T21:05:46.425034+00:00 app[web.1]:   Rendered api/shop/products/_product.json.jbuilder (3.2ms) 
2013-09-18T21:05:46.606141+00:00 app[web.1]: Marshalling error for key 'shop/products/344-20130914175034924266000/shop/products/346-20130914175035358419000/shop/products/345-20130914175035153905000/en/b5262bbbd44fb696ffdece67a464e218': no _dump_data is defined for class Proc
2013-09-18T21:05:46.606141+00:00 app[web.1]: You are trying to cache a Ruby object which cannot be serialized to memcached.
2013-09-18T21:05:46.606141+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/dalli-2.6.4/lib/dalli/server.rb:397:in `dump'
2013-09-18T21:05:46.606141+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/dalli-2.6.4/lib/dalli/server.rb:397:in `serialize'
2013-09-18T21:05:46.606141+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/dalli-2.6.4/lib/dalli/server.rb:269:in `set'
2013-09-18T21:05:46.606141+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/dalli-2.6.4/lib/dalli/server.rb:60:in `request'
2013-09-18T21:05:46.606141+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/dalli-2.6.4/lib/dalli/options.rb:18:in `block in request'

这是我尝试使用片段缓存的简单部分:

json.cache! [category[:products], I18n.locale] do
json.products category[:products] do |product|
json.partial! product
end
end

和产品部分:

json.(
product,
:id,
:name,
:picture,
:price,
:subcategory
)

json.product_options product.product_options do |option|
json.(
option,
:id,
:name,
:option_type
)

json.option_items option.product_option_items do |item|
json.(
item,
:id,
:name
)
end
end

json.partial! 'api/app_styles/app_style', app_style: product.app_style
  • 请注意,app_style 部分在任何地方都使用并与其他缓存 View 一起使用

最佳答案

错误:您正在尝试缓存无法序列化到 memcached 的 Ruby 对象

这是你应该看的地方,它试图用 proc 编码一个对象,proc 只在运行时评估,不能序列化。

如果非要我猜是你的图片属性,可能是一个动态方法,或者写一个新的方法 picture_url 不使用proc,你可以通过一个一个地删除来确认哪个属性导致问题。

关于heroku - 在 Heroku 上使用 Dalli 的片段缓存 Jbuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com