亚洲精品成人_精品成人一区_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精品视频免费观看| 日本欧美色综合网站免费| 国产精品一区二区三区观看| 先锋在线资源一区二区三区| 波多野结衣精品久久| 亚洲国产精品一区在线观看不卡| 久久国产欧美精品| 国产精品有限公司| 午夜久久美女| 日韩免费av一区二区三区| 蜜桃av久久久亚洲精品| 国产一区二区三区四区hd| 另类视频在线观看+1080p| 国产九区一区在线| 狠狠色噜噜狠狠色综合久| 日韩精品另类天天更新| 国产精品对白一区二区三区| 中国女人久久久| 欧美精品国产一区| 日本在线观看一区二区三区| av一区二区在线看| 国产日韩欧美一区二区| 国一区二区在线观看| 亚洲精品一品区二品区三品区| 精品久久久三级| 91久久精品国产91久久性色tv | 欧美三级在线| 四虎永久国产精品| 久久久久久久久四区三区| 99国产视频| 久久久久国产精品一区三寸| 日韩网站在线| 亚洲一级影院| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 亚洲国产一区二区在线| 欧美久久在线| 亚洲欧美亚洲| 中文字幕一区二区三区四区五区| 免费一区二区三区在在线视频| 国产高清一区二区三区| 91嫩草视频在线观看| 国产精品入口| 亚洲免费在线精品一区| 国产精品日本| 欧美一级二区| 另类亚洲自拍| 久久五月天婷婷| 久久久国产精品一区二区中文 | 久久av二区| 亚洲一区二区伦理| 国产一区二区三区黄| 国产日韩欧美一区二区三区在线观看 | 国产欧美亚洲日本| 亚洲少妇自拍| 国产伦精品一区二区三区视频黑人| 亚洲久久一区| 性欧美videos另类喷潮| 久久精品国产99精品国产亚洲性色| 亚洲影院在线| 久久一区二区三区四区五区| av资源一区二区| 精品不卡在线| 日本一区二区三区www| 色噜噜狠狠一区二区三区| 亚洲一卡二卡三卡| 欧美日一区二区在线观看 | 午夜一区二区三区| 欧美一区二区| 在线观看一区视频| 亚洲视频1区| 99精品在线直播| 精品欧美日韩在线| 日韩精彩视频| 欧美日韩精选| 国产亚洲欧美一区二区| 久久亚洲精选| 麻豆亚洲一区| 亚洲视频在线二区| 亚洲国产一区二区在线| 久久久精品网| 欧洲精品久久| 一区二区三区国产福利| 亚洲国产精品综合| 99在线视频免费观看| 久久综合九色欧美狠狠| 亚洲精品第一区二区三区| 国产精品xvideos88| 国产精品美女黄网| 精品日本一区二区三区在线观看 | 一区二区三区国| 99国产精品久久久久久久| 97在线电影| 少妇精品久久久久久久久久| 国产精品激情| 99久久99| 夜夜春亚洲嫩草影视日日摸夜夜添夜 | 很黄很黄激情成人| 久久亚洲二区| 亚洲成色www久久网站| 亚洲精品国产日韩| 国产亚洲欧美另类一区二区三区| 亚洲第一在线综合在线| 亚洲精一区二区三区| 黑人中文字幕一区二区三区| 中文字幕色一区二区| 久久国产精品亚洲77777| 欧美一区国产一区| 极品中文字幕一区| 国产精品久久久久久久久久久久午夜片 | 日韩午夜免费| 免费国产在线精品一区二区三区| 欧美色图首页| 国产精品9999久久久久仙踪林| 亚洲激情电影在线| 美日韩免费视频| 亚洲精品第一区二区三区| 香蕉精品999视频一区二区| 日韩久久精品一区二区三区| 国产美女精品| 日韩精品另类天天更新| 性色一区二区三区| 午夜精品亚洲一区二区三区嫩草 | 精品一区二区三区日本| 黑人一区二区三区四区五区| 国产一区二区三区无遮挡| 国产一区日韩欧美| 久久精品日产第一区二区三区乱码| 国模大胆一区二区三区| 狠狠干一区二区| 日韩视频在线播放| 日韩欧美亚洲日产国产| 美女精品一区| 午夜欧美精品久久久久久久| 国产一区二区在线网站| 亚洲精品无人区| 视频三区二区一区| 成人精品一二区| 亚洲一级二级| 水蜜桃亚洲精品| 国产91视觉| av成人国产| 女主播福利一区| 免费在线一区二区| 久久综合伊人| 亚洲国产日韩综合一区| 亚洲欧洲一二三| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 国偷自产av一区二区三区小尤奈| 亚洲欧洲在线一区| 一区不卡字幕| 久久婷婷开心| 999久久久| 一区二区国产精品| 伊人久久青草| 精品在线一区| 粉嫩高清一区二区三区精品视频 | 久久久福利视频| 亚洲人成免费| 欧美日韩国产综合视频在线| 精品欧美国产| 巨乳诱惑日韩免费av| 中文精品一区二区三区 | 亚洲美女色禁图| 欧美精品一区在线发布| 日韩欧美视频一区二区三区四区| 国产伦精品一区二区三区在线 | 在线观看一区欧美| 欧美日韩一区二区三区在线视频| 7777精品伊久久久大香线蕉语言 | 性伦欧美刺激片在线观看| 亚洲精品1区2区| 狠狠色噜噜狠狠狠狠色吗综合| 一本一道久久a久久精品综合| 欧美日韩精品免费观看视一区二区| yellow视频在线观看一区二区 | 先锋亚洲精品| 亚洲一区二区成人| 国产日韩欧美高清免费| 亚洲日本黄色| 亚洲黄色成人久久久| 国产精品mm| 好吊视频一区二区三区四区 | 国产尤物精品| 欧美日韩精品免费观看| 欧美精品福利| 欧美日韩精品一区| 国产主播一区| 激情一区二区| 亚洲免费成人| 国产精品久久久亚洲一区| 一区二区福利| 美脚丝袜一区二区三区在线观看| 国产精品视频福利| 亚洲一区二区四区| 国产九九精品|