如何在Laravel 5中每天(00:00:00)更新缓存一次?

时间:2015-04-03 18:24:18

标签: php caching laravel eloquent laravel-5

我的数据集必须每24小时更新一次。这应该在00:00:00或之后的第一个请求发生。我们如何为此设置缓存记忆条件,因为它只允许设置分钟而不是时间?

2 个答案:

答案 0 :(得分:2)

您可以使用Carbon。在Larvel documentation中,我们可以找到一个示例,在十分钟后使缓存失效:

$expiresAt = Carbon::now()->addMinutes(10);
Cache::put('key', 'value', $expiresAt);

您想要它来确定一天的结束。幸运的是Carbon提供了一切:

$expiresAt = Carbon::now()->endOfDay();

这将为您提供当天23:59:59的最后一秒。只需添加一秒即可满足您的要求:

$expiresAt = Carbon::now()->endOfDay()->addSecond();

答案 1 :(得分:0)

  

不是完整的答案,我试图找到一种方法来缓存一天的开始或第一天的请求。经过append date to predefined key

所以你想要的很简单,如果你想要一个简单的解决方案,你可以在你的数据库中添加一个表,它只有两个属性:id和date。从此处有人登录时,检查当天是否有登录,如果没有,则执行您必须执行的操作。

修改

当有人登录时,您更新表格中的日期。