有没有办法做类似的事情
Rails.cache.fetch("id..", expire_in: 1.day, expire_at: midnight) do
#...
end
谢谢!
有没有办法做类似的事情
Rails.cache.fetch("id..", expire_in: 1.day, expire_at: midnight) do
#...
end
谢谢!
没有expires_at
选项,但您可以快速计算所需到期时间和当前时间之间的秒数。假设您的意思是“明天结束时到期”,您可以执行以下操作:
expires_in_seconds = Time.now.end_of_day + 1.day - Time.now
Rails.cache.fetch("id...", expires_in: expires_in_seconds) do
#...
end
哪里expires_in_seconds
会返回几秒钟(例如90559
)
如果你的意思是“今天结束”,那就是Time.now.end_of_day - Time.now
.
您可以在创建它时设置过期时间
Rails.cache.write("你的密钥或 id", expires_in: 1.day)
小心不要得到小数,如果你想要一个整数......
>_ bundle exec rails console
Loading development environment (Rails 6.0.3.2)
>> Time.now.end_of_day + 1.day - Time.now
169207.001996682
>> (Time.now.end_of_day + 1.day - Time.now).to_i
169204
>>