分享个代码

公司的项目 基本都是查询 其中大量用到了redis缓存,为了避免让用户触碰到第一次的缓存长加载

我的思路是增加个链接加速命令,使用guzzle去访问这些需要缓存的接口 则会缓存住数据,但是这其中的guzzle服务器配置 因为每个人的电脑或者不同服务器配置的影响,经常会超时,或者引起网站短时间内504 502。做了个小小的优化

新建config文件 命名 url-speed.php 配置如下:

分享个代码

envenv.example 按照不同环境手动配置如下:

分享个代码

期间具体业务不便展示,会用到这些具体数值来构造guzzle服务器相关配置,数据的大小切分等,略过了

还支持自动配置

只需要 SPEED_AUTO 配置为 true 即可开启自动模式

自动模式在命令加速文件中代码如下:

原理就是识别cpu与内存配置,单词动态更改 config 文件做出配置的更改

分享个代码

这样子 一个自动识别环境配置 也可手动根据配置激进或稳定配置的 动态配置器 就完成了

本作品采用《CC 协议》,转载必须注明作者和本文链接
chowjiawei
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 25

好思路,你是要我们吐槽吗?
哈哈,这个代码不优雅,你看,这个获取 CUP 相关的代码,和 拿到 CUP 相关数据做判断的代码 本是两件事,你写在了一起,再一看,代码还安插在 __construct,导致下个人来看代码的时候,需要一定时间才能弄清 :实例这个类会做什么操作。

3年前 评论
chowjiawei (楼主) 3年前
chowjiawei

@bigbug 现在我来正名拉

1.本代码仅在一个文件内使用,过度封装 是个不好的习惯

2.本代码 是必须经过执行的 所以放到construct和内部的效果是一致的,但是内部的代码一般有很多,所以不建议放到内部的

3.你可能理解错了哦,这个代码只使用了一个功能,所以不存在看不清楚代码,需要跳转的问题哦

从头到尾,他只为了一个命令而服务哦
Laravel

3年前 评论
bigbug-gg 3年前
chowjiawei (作者) (楼主) 3年前

这里是特地起了服务去访问需要缓存的接口?

3年前 评论
chowjiawei (楼主) 3年前

感觉好像哪里怪怪的

3年前 评论
chowjiawei (楼主) 3年前
chowjiawei

虽然完整代码没有放上来

给你们看看我Artisan小王子写命令界面吧~

file

Laravel

Laravel

3年前 评论
chowjiawei

@

为了和laravel融合贯通, 方便修改添加链接,写了这个命令,通过guzzle访问,个人比较喜欢这种方式

file

3年前 评论
chowjiawei

分享个问题

由于服务器配置问题,可能导致的加速异常,我手动写了个不雅观的代码重试一次,有没有人做过这种的,遇到异常就一直重试,重试自定义几次或者一直到成功的呢? file

3年前 评论
小丑路人 3年前
小丑路人 3年前
chowjiawei (作者) (楼主) 3年前
小丑路人 3年前

@chowjiawei 我给你写一个,看看行不行

$i = 0;
$tryMaxNum = config('url-speed.try_num', 5);

while ($i < $tryMaxNum) {
    try {
        Artisan::call('url-speed:generate 1 --conditional');
        break;
    } catch (\Exception $e) {
        $i++;
        $this->error('很遗憾由于您的服务器配置问题,本次加速未能完成,正在为您重试一次!');
    }
}

if ($i === $tryMaxNum) {
    $this->error('加速选项- 1 -加速失败-跳过【您可以稍后再次运行本命令,加速过的部分将会为您跳过!】');
}
3年前 评论
chowjiawei (楼主) 3年前

啥叫guzzle服务器? 为啥通过guzzle可以缓存住数据? guzzle不就是个http client库么?

3年前 评论
chowjiawei (楼主) 3年前
luke_wu (作者) 3年前
chowjiawei (楼主) 3年前
luke_wu (作者) 3年前
chowjiawei (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
测开 @ 新大陆数字技术股份有限公司
文章
76
粉丝
42
喜欢
238
收藏
410
排名:238
访问:4.0 万
私信
所有博文
博客标签
社区赞助商