五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

ReadyScheduler

Easyswoole 基礎組件1.8.7版本起,提供了一個基于Swoole Table實現的就緒計劃程序,用于解決主服務啟動時,部分子服務未就緒問題。

基礎測試使用

namespace EasySwoole\Component\Tests;

use EasySwoole\Component\ReadyScheduler;
use PHPUnit\Framework\TestCase;
use Swoole\Coroutine;

class ReadySchedulerTest extends TestCase
{
    function testNormal()
    {
        ReadyScheduler::getInstance()->addItem('worker');
        ReadyScheduler::getInstance()->addItem('rpc');
        ReadyScheduler::getInstance()->addItem('fastCache');

        go(function (){
            Coroutine::sleep(1);
            ReadyScheduler::getInstance()->ready('worker');
            ReadyScheduler::getInstance()->ready('rpc');
        });
        $this->assertEquals(false,ReadyScheduler::getInstance()->waitReady(['rpc','worker'],0.1));
        $this->assertEquals(true,ReadyScheduler::getInstance()->waitReady('rpc'));
        $this->assertEquals(true,ReadyScheduler::getInstance()->waitReady(['rpc','worker']));
        $this->assertEquals(false,ReadyScheduler::getInstance()->waitReady(['rpc','worker','fastCache'],1.1));
    }
}

EasySwoole服務中使用

以Http服務作為基礎例子

namespace EasySwoole\EasySwoole;

use EasySwoole\Component\ReadyScheduler;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;
use Swoole\Coroutine;

class EasySwooleEvent implements Event
{

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

    public static function mainServerCreate(EventRegister $register)
    {
        /*
         * 主進程初始化table
         */
        ReadyScheduler::getInstance();
        /*
         * 假設,服務啟動的時候,依賴 serviceOne,serviceTwo 兩個服務,例如鏈接第三方api等。
         * 在服務未就緒的時候,我們不希望本機器開始對外服務
         */
        $register->add($register::onWorkerStart,function ($serv, $workerId){
            if($workerId == 0){
                /*
                 * 若不是強制準備,請注意addItem,unready,ready實現方法
                 */
                Coroutine::sleep(3);
                ReadyScheduler::getInstance()->ready('serviceOne',true);
                var_dump('r1');
            }else if($workerId == 1){
                Coroutine::sleep(4);
                ReadyScheduler::getInstance()->ready('serviceTwo',true);
                var_dump('r2');
            }
        });
    }

    public static function onRequest(Request $request, Response $response): bool
    {
        /*
         * 鏈接進來的時候,判斷依賴的服務是否就緒,等待時間為1s (tcp,ws服務也同理)
         * 在服務未就緒的時候,我們先拒絕服務
        */
        if(!ReadyScheduler::getInstance()->waitReady(['serviceOne','serviceTwo'],1.0)){
            $response->write('not ready,try again');
            return false;
        }
        return true;
    }

    public static function afterRequest(Request $request, Response $response): void
    {

    }
}
主站蜘蛛池模板: 国产综合精品在线 | 成人亚洲视频 | 国产高清免费在线观看 | 欧美一级成人一区二区三区 | 永久免费毛片在线播放 | 欧洲性开放大片免费观看视频 | 亚洲综合伊人 | 欧美 另类 精品一区视频 | av2014天堂网 | 国产欧美日韩精品综合 | 国语精品视频在线观看不卡 | 少女免费观看完整版 | 婷婷六月久久综合丁香可观看 | 色偷偷男人天堂 | 免费午夜在线视频 | 婷婷开心激情 | 久久久蜜桃 | 激情婷婷色 | 四虎在线免费观看 | 欧美日韩午夜视频 | 毛片在线免费 | 久久五月网 | 免费视频一区二区三区四区 | 国产午夜电影在线观看 | 99久久99这里只有免费的精品 | 丁香花在线高清免费观看 | 国产午夜精品久久久久 | 视频一区二区免费 | 我要看一级毛片 | 视色4se影院在线观看 | 国产精品亚洲片夜色在线 | 国产手机自拍视频 | 91天堂素人精品系列全集亚洲 | 久久99这里精品8国产 | 久久高清一区二区三区 | 青草影院天堂男人久久 | 欧美美女福利视频 | 五月天色站 | 斗破苍穹漫画扑飞在线观看免费版 | 欧美在线看欧美高清视频免费 | 精品久久久久久午夜 |