gpt4 book ai didi

php - Laravel 选择性缓存

转载 作者:行者123 更新时间:2023-12-04 02:54:17 24 4
gpt4 key购买 nike

我正在使用 Laravel 4 框架开发我的第一个应用程序(顺便说一下,用它来设计是一种乐趣)。对于一个组件,有一个查询外部服务器的 AJAX 请求。问题是,我想将这些响应缓存一段时间仅当它们成功时

Laravel 有 Cache::remember() 函数,但问题是似乎没有不存储缓存的“失败”模式(至少,在他们的文档中没有描述)。

例如,采用这个简化的函数:

try {
$server->query();
} catch (Exception $e) {
return Response::json('error', 400);
}

我想在这个输出上使用 Cache::remember,但只有没有抛出异常。我可以想到一些不太优雅的方法来做到这一点,但我认为 Laravel,作为一个...... Eloquent ......框架,会有更好的方法。有什么帮助吗?谢谢!

最佳答案

这对我有用:

if (Cache::has($key)) {
$data = Cache::get($key);
} else {
try {
$data = longQueryOrProcess($key);
Cache::forever($key, $data); // only stored when no error
} catch (Exception $e) {
// deal with error, nothing cached
}
}

当然你可以使用 Cache::put($key, $data, $minutes); 而不是 forever

关于php - Laravel 选择性缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16976455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com