use GuzzleHttp\Client;$client = new Client();////////////////// 其他代码 ////////////try{ $res = $client->request($method, $url, $options); $return = get_object_vars(json_decode($res->getBody())); return $return;}catch(\Exception $e){ var_dump($e->getResponse()->getBody()->getContents()); //完整的错误信息}WRITING LOG · 03
技术博客
记录技术实践、问题排查和持续成长,把每一次解决问题的过程留下来。
WORKSPACE
文章阅读
GuzzleHttp报错信息不完整,异常被信息被截断,而且需要完整错误信息
2022-09-05
laravel获取redis类型的Cache缓存剩余过期时间TTL
2022-09-02
去年业务需求要用户登陆长期有效避免登陆于是用了redis做了永久缓存。最近考虑到用户量越来越大,加上临时用户和不活跃的用户缓存不会失效清理只会像滚雪球一样占内存于是打算做下缓存优化。基本思路是强制所有缓存都设置为半年,再等用户每次请求的时候根据缓存有效剩余时间ttl范围随机刷新将要过期的用户缓存。可是一番操作下来发现laravel5.5的Cache缓存并没有提供查询缓存过期时间的方法,没办法只能另辟蹊径。因为我的缓存是用的redis来做的不是文件缓存所以可以根据redis的ttl方法来查缓存过期时间。问题在于laravel单独的redis方法是给数据库准备的,直接根据Cache时候的缓存key名称无法操作(因为带了缓存前缀)。摸索了一番还是解决了,下面上代码:
use Illuminate\Support\Facades\Redis;$rds = Redis::connection('cache'); //使用cache缓存的redis配置$cache_prefix = Cache::getPrefix(); //缓存前缀$ttl = $rds->ttl(你的缓存key);$rds->expire(你的缓存key, 过期秒数);
laravel报错提示Trailing data
2022-09-02
有时候laravel报错会提示Trailing data,这个是时间戳格式引起的,需要在报错的模型里面加一句
protected $dateFormat = 'Y-m-d H:i:s.u';或者加一个方法 public function getDateFormat() { return 'Y-m-d H:i:s.u'; }这样就可以了。