欢迎光临
我们一直在努力

PHP HyperF -> 重叠和并发

php hyperf -> 重叠和并发 重叠和并发” />

  • 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免费学习笔记(深入)”;

赞(0) 打赏
未经允许不得转载:码农资源网 » PHP HyperF -> 重叠和并发
分享到

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册