我正在开发一个 RoR 应用程序。我想为售罄的物品设置一个 ttl。sold_out_status 函数返回售罄产品的productIds,定义为:
def sold_out_status
query_str = params[:pids]
pids = query_str.split(",")
sold_outs = cache(request.fullpath.to_s, :expires_in => 3600.seconds.to_i) do
pids.select {|x| (Product.find(x).on_hand <= 0)}.join(",")
end
render :text => sold_outs
end
有没有办法可以将产品缓存在清漆中并为售罄的产品设置一个 ttl。一些研究表明,ESI 可能是一个好主意。但是,我找不到可以遵循的详细文档来实现这一点。另外,我怎样才能访问 varnish 中的 sold_out_status 的输出?
编辑:页面上的售罄产品可以通过请求 URL 找到,与此 URL 对应的页面包含呈现为文本的售罄产品的 ID。