0

我目前正在使用 Laravel 构建一个小应用程序,并希望在仪表板上显示天气。为此,我使用了一个访问 Forecast.io API 的 Composer 包。但是,由于该 API 对每天的免费调用有速率限制,我想使用 Laravel 工具缓存数据,并每隔几分钟更新一次。

为此,我可以想到两种方法:

  1. 创建一个自定义类,在轮询之前检查缓存中的数据,并让缓存数据在 x 分钟后过期。
  2. 在 Laravel 中创建一个定时更新缓存中的天气数据的 cronjob。

从我的角度来看,第一个选项似乎更好,因为它保证我将始终有可用的数据,即使缓存被清空。除此之外,它看起来更干净。

问题是:我不知道如何在 Laravel 中实现这样的类,并且在官方文档中也找不到任何内容。我的愿望是我可以简单地调用一个 Facade,它为我提供数据,其余的在后台处理。我只需要知道在哪里放置这样的 Facade 以及如何设置它。

问候,

平子

4

1 回答 1

1

你甚至不需要一个类来使用

$weather = Cache::remember('weather', $minutes, function() {
    // Your API call
    return $weather;
});

您可以在此处查看文档https://laravel.com/docs/5.2/cache#retrieving-items-from-the-cache

这种方法的缺点是,如果缓存为空,您的用户将等待 API 调用......

如果您只想将值存储在缓存中然后检索它,您仍然可以使用 cron。

于 2016-03-13T21:53:02.780 回答