【问题标题】:How to update cache once a day on the day (00:00:00) in Laravel 5?如何在 Laravel 5 中的一天(00:00:00)每天更新一次缓存?
【发布时间】:2015-04-03 18:24:17
【问题描述】:

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

【问题讨论】:

    标签: php caching laravel eloquent laravel-5


    【解决方案1】:

    您可以为此使用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();
    

    【讨论】:

    • 不是完整的答案,我试图找到一种在一天开始或一天的第一个请求时缓存的方法。如果存在,则将附加日期附加到预定义的键,返回缓存结果,否则计算,缓存,返回结果。谢谢!
    【解决方案2】:

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

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

    编辑

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2016-05-20
      • 2021-03-15
      相关资源
      最近更新 更多