1 Star 0 Fork 0

安广利 / laravel_swoole

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

laravel-swoole & Laravel7

swoole初体验

项目根目录执行命令:php artisan swoole:http start

测试数据:php 同步与异步的性能较量

条件1:从redis队列中取数据(500)

条件2:每条数据处理时,入库一条insert语句,同时usleep(100000) 100毫秒

(由于使用swoole协程,异步执行程序,mysql最大连接数直接被干蹦了, 我本地数据库的最大连接数据,我设置了512,所以这里用500测试)

结果:

同步IO阻塞(sync)执行时长:52.024203062057 秒

异步协程 (async)执行时长:1.2969169616699 秒

其实PHP也很快的,只要你用的好

测试应用(模拟为10万用户推送消息,发送优惠劵消息)

10万条数据(调用方法延迟100毫秒) (redis队列中取数据,数据库入库)执行时间:53.250306129456 秒

使用技术点(协程,等待组,mysql连接池,redis连接池)实现,大大减少了IO阻塞带来的性能问题

新增封装方法

一,时间段拆分 使用场景(例如秒杀时间段) Service::splitTimeSlot

二,模拟微信群发红包 使用场景(群红包随机拆分,包含手气最佳) Service::wxGroupRed

三,Websocket服务(基于swoole) 使用场景(同一场景数据同步推送,基于swoole,windows暂不支持) 服务启动脚本命令(守护进程启动) php artisan action:call TestController@webSocketServer

四,秒杀功能(防止超卖) 使用场景(秒杀,抢购,防止超卖) 流程(先设置商品库存数量入redis,使用分布式锁,防止超卖) 测试脚本命令 php artisan action:call TestController@concurrentCurl

五,多句柄模拟并发Curl请求 使用场景(http并发测试) CurlService::concurrentCurl

空文件

简介

暂无描述 展开 收起
PHP 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/yangxiaomao.com/laravel_swoole.git
git@gitee.com:yangxiaomao.com/laravel_swoole.git
yangxiaomao.com
laravel_swoole
laravel_swoole
master

搜索帮助