PHP - Redis队列解决执行速度问题

43 篇文章 0 订阅
29 篇文章 1 订阅

                 今天优化了一个用Redis队列异步解决了提交数据反映时间慢点问题 整理下和大家分享下 一是怕自己忘了 二是希望可以帮助到你们 或多或少提供些思想也是好的...

  先看下图,在没有优化之前一起提交五套房源的速度是这个样子的

<注 上图是charles的截图 响应时间6.86秒>

第一反应是sql的问题  然后把所有的sql 输出到文本上 发现有查询是带*号的sql语句 还有就是夹在循环里的sql 改掉了里面的循环体和sql 当时的sql如下图

把当时的循环逻辑进行优化 但是发现还没有解决 当时就想是不是在哪里发生了问题 注释掉了一些sql和循环 速度还是那么慢 后来发现每次提交代码时都在发送短信和邮件 当时我的第一想法是把发送的curl设置成已微妙为单位的发送和请求 中途遇到了问题是每次没有执行发送邮件 当时真是一阵草泥马呼啸而过....

脚本执行慢的原因是 每次发送邮件要等返回值!!! 这问题就变得好多了 使用Redis把每次发送邮件请求lpush到Redis队列中 然后在定时脚本rpop消费 这样执行时不用等待邮件是否发送成功 记录相应的日志 问题得到解决大笑大笑 成就感满格...

Redis 写入队列和消费队列的脚本代码 以及日志记录 <上次写的脚本日志利总非常不满意 所以之后都写的多想想 每一步执行都要记录了 谢谢利总>


最后执行速度终于到了185ms 大写的满足







                  

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stark张宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值