从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要介绍了Laravel中处理接口并发的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、虚拟主机、营销软件、网站建设、无锡网站维护、网站推广。
Laravel 中简单处理接口并发
日常业务逻辑中经常会出现接口并发处理,最常见的是同一个接口被瞬间调了好几次,导致产生的数据错乱
为了避免这种问题发生,一般前端、移动端会限制按钮触发接口限制,后端接口调用限制。
该方法仅适用于简单的接口频率限制。并不适用于商品秒杀,但原理类似。
这只是一个简单的实现过程,主要用了 redis 原生的 set 方法类给 key 设置值的时候设置过期时间,如果改 key 存在 ,则返回 false。如果不存在则设置值同时设置过期时间,返回 true。 避免了死锁的出现。
/** * 简单处理并发 * @User yaokai * @param $key 要设置的key * @param int $ttl 限制过期时间 * @param int $value 要设置的值 * @return bool true成功 false失败 */ function redisConcurren($key, $ttl = 240, $value = 1) { // 实例化原生 redis $redis = new \Redis(); // 指定需要使用的 redis 服务器 $redis->connect(config('database.redis.default.host')); // 设置密码 $redis->auth(config('database.redis.default.password')); // 设置默认的 redis 库 $redis->select(config('database.redis.default.database')); // 利用原生的set方法设置一个key的过期时间 $status = $redis->set($key, $value, array( 'nx', 'ex' => $ttl )); return $status; }
我只是一个慢慢学习的小菜鸟。如果有不对的地方,或者有更好的方法希望各位不吝指教,相互讨论,感激不尽!
感谢你能够认真阅读完这篇文章,希望小编分享的“Laravel中处理接口并发的方法”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图