亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

SyncInvoker 組件

使用場景

Swoole4.x 后,提供了非常強大的協程能力,讓我們可以更好地壓榨服務器性能,提高并發。然而,目前 PHPSwoole 協程生態上,并不是很完善,比如:沒有協程版本的 MonogoDB 客戶端,而為了避免在 Worker 進程中調用了同步阻塞的 Api,例如在 Http 回調中使用了同步的 MonogoDB 客戶端,導致 Worker 進程退化為同步阻塞,導致無法完全地發揮協程的優勢。所以 EasySwoole 提供了一個同步程序協程調用轉化驅動。

設計原理

啟動自定義進程監聽 UnixSocket,然后在 Worker 進程中調用協程客戶端發送命令到自定義進程并處理,然后把處理結果返回給 Worker進程中的協程客戶端。

組件要求

  • php: >= 7.1.0
  • ext-swoole: >= 4.4.23
  • easyswoole/component: ^2.0
  • opis/closure: ^3.5

安裝方法

composer require easyswoole/sync-invoker

倉庫地址

easyswoole/sync-invoker

基本使用

首先定義一個驅動工作實例(可以定義多個),示例代碼如下:

<?php

namespace App\Utility;

use EasySwoole\SyncInvoker\AbstractDriver;

class MyInvokerDriver extends AbstractDriver
{
    private $stdclass;

    function __construct()
    {
        $this->stdclass = new \stdClass();
        parent::__construct();
    }

    public function test($a, $b)
    {
        $this->response($a + $b);
    }

    public function a()
    {
        $this->response('this is a');
    }

    public function getStdClass()
    {
        return $this->stdclass;
    }
}

然后注冊一個對應的調用器,示例代碼如下:

<?php

namespace App\Utility;

use EasySwoole\Component\Singleton;
use EasySwoole\SyncInvoker\SyncInvoker;

// 注冊一個對應的調用器
class MyInvoker extends SyncInvoker
{
    use Singleton;
}

最后在 EasySwoole全局事件 中 的 mainServerCreate 事件中進行注冊

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        // TODO: Implement initialize() method.
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {
        $invokerConfig = \App\Utility\MyInvoker::getInstance()->getConfig();

        // 以下這些配置都是可選的,可以使用組件默認的配置
        /*
        $invokerConfig->setServerName('EasySwoole'); // 設置服務名稱,默認為 'EasySwoole'
        $invokerConfig->setWorkerNum(3); // 設置 Worker 進程數,默認為 3
        $invokerConfig->setTempDir(EASYSWOOLE_ROOT . '/Temp'); // 設置 unixSocket 存放目錄,默認為 系統臨時文件存放目錄('/tmp')
        $invokerConfig->setMaxPackageSize(2 * 1024 * 1024); // 設置最大允許發送數據大小,默認為 2M
        $invokerConfig->setTimeout(3.0); // 設置服務調用超時時間,默認為 3.0 秒
        $invokerConfig->setAsyncAccept(true); // 設置異步接收數據,默認為 異步接收(不建議修改)
        $invokerConfig->setOnWorkerStart(function (\EasySwoole\SyncInvoker\Worker $worker) {
            var_dump('worker start at Id ' . $worker->getArg()['workerIndex']);
        }); // 設置服務啟動時執行的事件回調
        */

        $invokerConfig->setDriver(new \App\Utility\MyInvokerDriver()); // 設置驅動工作實例【必須配置】

        // 注冊 Invoker
        \App\Utility\MyInvoker::getInstance()->attachServer(ServerManager::getInstance()->getSwooleServer());
    }
}

在框架服務啟動后,即可在框架的任意位置調用 Invoker 服務了,使用示例如下:

例如在控制器中進行調用:

<?php

namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;

class Index extends Controller
{
    public function index()
    {
        $ret = \App\Utility\MyInvoker::getInstance()->invoke()->test(1, 2);
        var_dump($ret);
        var_dump(\App\Utility\MyInvoker::getInstance()->invoke()->a());
        $ret = \App\Utility\MyInvoker::getInstance()->invoke()->callback(function (\App\Utility\MyInvokerDriver $driver) {
            $std = $driver->getStdClass();
            if (isset($std->time)) {
                return $driver->response($std->time);
            } else {
                $std->time = time();
                return $driver->response('new set time');
            }
        });
        var_dump($ret);
    }
}

/**
 * 輸出結果:
 * int(3)
 * string(9) "this is a"
 * string(12) "new set time"
 * int(3)
 * string(9) "this is a"
 * int(1611071672)
 */

注意事項

  • 盡量使用函數名調用方式,閉包方式調用會存在部分閉包函數序列化失敗問題
  • 傳遞參數,返回結果盡量用數組或者字符串傳遞,資源對象無法序列化
亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    99高清视频有精品视频| 国产精品日本一区二区| 日本在线成人一区二区| 久久午夜精品| 国产亚洲毛片| 国产精品vip| 亚洲图色在线| 久久综合精品一区| 国产精品对白一区二区三区| 国产精品一区二区欧美| 红桃视频国产精品| 在线播放豆国产99亚洲| 日本不卡在线播放| 欧美一二三四五区| 六十路精品视频| 久久99精品久久久久久水蜜桃| 媚黑女一区二区| 性色一区二区三区| 欧美亚洲一区二区三区| 亚洲一区二区三区高清不卡| 99精品99| 99视频一区| 日韩天堂av| 国产亚洲一区在线播放| 国产精品毛片一区二区三区| 亚洲看片免费| 男女精品网站| 久久精品一区| 国产欧美日韩视频一区二区三区| 91网免费观看| 九九九热999| 日本一区二区三区免费看| 欧美一区二区在线| 亚洲人成77777| 在线天堂一区av电影| 欧美二区视频| 亚洲激情亚洲| 老牛国产精品一区的观看方式| 久久综合九色综合久99| 久草一区二区| 伊人狠狠色丁香综合尤物| 欧美亚韩一区| 久久国产精品久久精品国产| av在线不卡观看| 日产精品高清视频免费| 一区二区日本| 99精品国产99久久久久久福利| 香蕉成人久久| 国产精品一区二区欧美黑人喷潮水| 九九99玖玖| 国产一区高清视频| 久久精品成人| 欧美日韩蜜桃| 亚洲一区影院| 欧美亚洲精品日韩| 亚洲国产精品第一区二区三区| 久久精品日产第一区二区三区| 好吊色欧美一区二区三区四区| 亚洲欧美国产一区二区| 亚洲区第一页| 国产三级精品在线不卡| 亚洲一区二区三区午夜| 亚洲欧洲日本一区二区三区| 国产乱码精品一区二区三区日韩精品 | 久久久蜜桃一区二区人| 国产精品有限公司| 欧美一区2区三区4区公司二百| 国产精品久久国产愉拍| 日韩福利二区| 久久久国产精品一区二区三区| 日本精品免费| 久久久久久精| 欧美一区二区| 成人欧美一区二区| 激情久久五月| 欧美一区二区在线| 欧美资源在线| 欧美激情视频一区二区三区在线播放 | 国产亚洲毛片在线| 茄子视频成人在线观看| 欧美亚洲网站| 欧美久久99| 久中文字幕一区| 免费在线亚洲| 欧美午夜免费影院| 欧美亚洲免费高清在线观看| 蜜桃久久精品乱码一区二区| 正在播放久久| 欧美日韩在线观看一区| 久久伊人亚洲| 日韩亚洲精品在线| 亚洲欧美一区二区原创| 精品无人区一区二区三区竹菊| 国产精品推荐精品| 欧美日韩一区二区视频在线观看 | 日本精品一区二区三区高清 久久| 99精品99久久久久久宅男| 亚洲色图自拍| 任我爽在线视频精品一| 99re6在线| 亚洲一区二区成人| 国产综合第一页| 在线视频福利一区| 五月天色一区| 欧美日韩中文国产一区发布| 国产高清在线一区| 99久re热视频这里只有精品6| 一区二区免费在线视频| 黄色工厂这里只有精品| 亚洲欧美影院| 欧美日韩福利| 欧美久久久久| 国产精品sss| 国产精品大全| 精品99视频| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美久久久久久久| 欧美三级乱码| 亚洲国产一区二区在线| 亚洲韩日在线| 一区二区日本视频| 国产农村妇女毛片精品久久莱园子 | 欧美一区免费视频| 中文视频一区视频二区视频三区| 日韩成人av网站| 亚洲在线欧美| 伊甸园精品99久久久久久| 一区国产精品| 蜜桃精品久久久久久久免费影院| 久久aⅴ国产紧身牛仔裤| 久久精品一区二区三区中文字幕| **亚洲第一综合导航网站| 亚洲一卡久久| 国产精品国产三级欧美二区| 久久久久久久久四区三区| 日韩伦理一区二区三区av在线| 伊人久久大香线蕉精品| 韩日精品视频| 久久久777| 久久国产手机看片| 杨幂一区欧美专区| 激情亚洲成人| 91精品久久香蕉国产线看观看| 国产精品伊人日日| 亚洲一区尤物| 一本综合精品| 国产一区二区三区奇米久涩| 日韩美女一区| 一区二区精品在线| 国产九区一区在线| 午夜精品电影| 91精品国产综合久久久久久丝袜 | 香蕉久久a毛片| 国产精品一区二区在线观看| 色乱码一区二区三在线看| 欧美精品播放| 999国内精品视频在线| 日本一区二区在线| 99精品国产高清一区二区 | 中文字幕日韩精品久久| 国产精品视频免费一区| 欧美精品v日韩精品v国产精品| 亚洲欧美综合| 国产精品亚洲综合| 欧美日韩91| 国产欧美日韩伦理| 亚洲婷婷免费| 激情五月综合色婷婷一区二区| 欧美日韩网站| 国产一区二区免费电影| 亚洲欧美综合一区| 国产精品对白刺激久久久| 欧美日韩在线播放一区二区| 国产91视觉| 136国产福利精品导航网址| 国语精品免费视频| 国产欧美另类| 亚洲欧美日韩国产成人综合一二三区| 国产日产高清欧美一区二区三区| 国产亚洲欧美另类一区二区三区 | 国产免费一区二区三区| 极品少妇一区二区三区| 欧美一区二区影视| 亚洲在线不卡| 欧美日韩一区二区高清| 久久影院理伦片| 久久国产精品一区二区三区| 午夜精品网站| 午夜欧美性电影| 精品无码久久久久久久动漫| 国产美女诱惑一区二区| 欧美日韩精品免费观看| 日本一区视频在线| 国产综合欧美在线看| 久久久xxx| 亚洲精品色图| 国语精品中文字幕| 欧美国产免费| 在线观看欧美亚洲| 视频一区二区三|