我正在开发一个 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
有没有一种方法可以在varnish中缓存产品并为售罄的产品设置ttl。一些研究表明,ESI可能是一个好主意。但是,我找不到详细的文档,可以按照其实施。另外,我如何访问varnish中sold_out_status的输出?
编辑:可以通过以下请求URL找到页面上的售罄产品,相应于此URL的页面包含以文本形式呈现的售罄产品的ID。