重叠和并发” />
- PHP:8.3.7
- PHP HyperF:23.1.3
HyperF – 项目
HyperF 进程不要覆盖共享变量数据非常重要。过载时可能会发生这种情况。
创建 – 项目
作曲家创建项目 hyperf/hyperf-骨骼“项目”
安装-观察者
作曲家需要 hyperf/watcher --dev
安装-UUID
作曲家需要 ramsey/uuid
服务器 – 启动
cd 项目; php bin/hyperf.php 服务器:watch ;
HyperF-APP
APP-路由器
Router::addRoute(['GET', 'POST'], '/overlapping/data', 'AppControllerControllerOverlapping@data'); Router::addRoute(['GET', 'POST'], '/overlapping/value-a', 'AppControllerControllerOverlapping@value_a'); Router::addRoute(['GET', 'POST'], '/overlapping/value-b', 'AppControllerControllerOverlapping@value_b'); Router::addRoute(['GET', 'POST'], '/overlapping/value-c', 'AppControllerControllerOverlapping@value_c'); Router::addRoute(['GET', 'POST'], '/concurrency/data', 'AppControllerControllerConcurrency@data'); Router::addRoute(['GET', 'POST'], '/concurrency/value-a', 'AppControllerControllerConcurrency@value_a'); Router::addRoute(['GET', 'POST'], '/concurrency/value-b', 'AppControllerControllerConcurrency@value_b'); Router::addRoute(['GET', 'POST'], '/concurrency/value-c', 'AppControllerControllerConcurrency@value_c');
路径:/project/config/routes.php
APP – 控制器 – 重叠
命名空间AppController; 控制器重叠类 { 公共$数据; 公共函数 __construct() { $this->data=''; } 公共函数数据() { 返回$this->数据; } 公共函数 value_a() { $this->data='值A'; 返回$this->数据; } 公共函数 value_b() { $this->data='值 B'; 返回$this->数据; } 公共函数 value_C() { $this->data='值C'; 返回$this->数据; } }
路径:/project/app/Controller/ControllerOverlapping.php
APP-控制器-控制
命名空间AppController; 使用 RamseyUuidUuid; 类控制器并发 { 公共$数据; 公共函数 __construct() { $this->data=array(); } 公共函数start() { $key=Uuid::uuid4()->toString(); 返回$键; } 公共函数结束($key) { $data=$this->data[$key]; 取消设置($this->数据[$key]); 返回$数据; } 公共函数数据() { 返回$this->数据; } 公共函数 value_a() { $key=$this->start(); $this->data[$key]='值A'; $data=$this->end($key); 返回$数据; } 公共函数 value_b() { $key=Uuid::uuid4()->toString(); $this->data[$key]='值 B'; $data=$this->end($key); 返回$数据; } 公共函数 value_C() { $key=Uuid::uuid4()->toString(); $this->data[$key]='值C'; $data=$this->end($key); 返回$数据; } }
路径:/project/app/Controller/ControllerConcurrency.php
执行
GET——并发
curl“http://127.0.0.1:9501/overlapping/data” 结果: '' 卷曲“http://127.0.0.1:9501/overlapping/value-a” 结果:“值 A” 卷曲“http://127.0.0.1:9501/overlapping/data” 结果:“值 A” 卷曲“http://127.0.0.1:9501/overlapping/value-b” 结果:“值 B” 卷曲“http://127.0.0.1:9501/overlapping/data” 结果:“值 B”
获取-控制
curl“http://127.0.0.1:9501/concurrency/data” 结果: '' 卷曲“http://127.0.0.1:9501/concurrency/value-a” 结果:“值 A” 卷曲“http://127.0.0.1:9501/concurrency/data” 结果: '' 卷曲“http://127.0.0.1:9501/concurrency/value-b” 结果:“值 B” 卷曲“http://127.0.0.1:9501/concurrency/data” 结果: '' 卷曲“http://127.0.0.1:9501/concurrency/value-a”&& 卷曲“http://127.0.0.1:9501/concurrency/value-a”&& 卷曲“http://127.0.0.1:9501/concurrency/value-c”; 结果:“值 A”、“值 B”、“值 C” 卷曲“http://127.0.0.1:9501/concurrency/data” 结果: ''
https://github.com/thiagoeti/php-hyperf-overlapping-concurrency
立即学习“PHP免费学习笔记(深入)”;
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » PHP HyperF -> 重叠和并发
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » PHP HyperF -> 重叠和并发