【发布时间】:2015-04-03 18:24:17
【问题描述】:
我有一个必须每 24 小时更新一次的数据集。这应该发生在当天 00:00:00 或之后的第一个请求中。我们如何设置缓存记住条件,因为它只允许设置分钟而不是时间?
【问题讨论】:
标签: php caching laravel eloquent laravel-5
我有一个必须每 24 小时更新一次的数据集。这应该发生在当天 00:00:00 或之后的第一个请求中。我们如何设置缓存记住条件,因为它只允许设置分钟而不是时间?
【问题讨论】:
标签: php caching laravel eloquent laravel-5
您可以为此使用Carbon。在Laravel documentation 中,我们可以找到一个缓存在 10 分钟后过期的示例:
$expiresAt = Carbon::now()->addMinutes(10);
Cache::put('key', 'value', $expiresAt);
您希望它决定一天的结束。幸运的是Carbon 提供一切:
$expiresAt = Carbon::now()->endOfDay();
这将为您提供当天的最后一秒 23:59:59。只需增加一秒即可满足您的要求:
$expiresAt = Carbon::now()->endOfDay()->addSecond();
【讨论】:
不是完整的答案,我试图找到一种在一天开始或一天的第一个请求时缓存的方法。
append date to predefined key
所以你想要的很简单,如果你想要一个简单的解决方案,你可以在你的数据库中添加一个表,它只有两个属性:id 和 date。从这里当有人登录时,您检查当天是否有登录,如果没有,您就做您必须做的事情。
编辑
当有人登录时,您会更新表格中的日期。
【讨论】: