Rails缓存在时区中的某个时间到期

时间:2015-07-06 19:03:49

标签: ruby-on-rails caching

在Elastic Beanstalk上的Amazon EC2实例上,我一直试图让控制器的索引操作在CST每天晚上7:01过期缓存。它似乎不起作用,我不太清楚为什么。我真的不想使用一个cron工作,因为那时候有点错误,而且我还在审查那个,所以我想用明确的时间指令使缓存过期

这是我正在使用的代码。

 caches_action :index, :layout => false, :unless => proc { user_signed_in? },expires_in: Time.use_zone("Central Time (US & Canada)") { DateTime.now.in_time_zone(Time.zone).beginning_of_day + 19.hours + 1.minute }

关于我哪里出错了?

进一步说,有一种更好的方法可以在一次方法调用中在CST 7:01 PM过期所有缓存吗?

由于

1 个答案:

答案 0 :(得分:0)

使用ActiveSupport :: Cache :: Store,您可以执行以下操作:

<% cache(key, :expires_in => 12.hours) do %>
   <!-- content -->
<% end %>

以下是文档的链接:

http://guides.rubyonrails.org/caching_with_rails.html#configuration