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

ReadyScheduler

Easyswoole 基礎(chǔ)組件1.8.7版本起,提供了一個(gè)基于Swoole Table實(shí)現(xiàn)的就緒計(jì)劃程序,用于解決主服務(wù)啟動(dòng)時(shí),部分子服務(wù)未就緒問(wèn)題。

基礎(chǔ)測(cè)試使用

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服務(wù)中使用

以Http服務(wù)作為基礎(chǔ)例子

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)
    {
        /*
         * 主進(jìn)程初始化table
         */
        ReadyScheduler::getInstance();
        /*
         * 假設(shè),服務(wù)啟動(dòng)的時(shí)候,依賴 serviceOne,serviceTwo 兩個(gè)服務(wù),例如鏈接第三方api等。
         * 在服務(wù)未就緒的時(shí)候,我們不希望本機(jī)器開(kāi)始對(duì)外服務(wù)
         */
        $register->add($register::onWorkerStart,function ($serv, $workerId){
            if($workerId == 0){
                /*
                 * 若不是強(qiáng)制準(zhǔn)備,請(qǐng)注意addItem,unready,ready實(shí)現(xiàn)方法
                 */
                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
    {
        /*
         * 鏈接進(jìn)來(lái)的時(shí)候,判斷依賴的服務(wù)是否就緒,等待時(shí)間為1s (tcp,ws服務(wù)也同理)
         * 在服務(wù)未就緒的時(shí)候,我們先拒絕服務(wù)
        */
        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
    {

    }
}
主站蜘蛛池模板: 日日操夜夜操狠狠操 | 久久久久精彩视频 | 国产免费一区二区三区最新 | 97在线观看中心 | 国产亚洲视频网站 | 亚洲天堂久久精品成人 | 午夜免费理论片a级 | 国产精品综合一区二区三区 | 欧美精品性生活 | 久久久久国产一级毛片高清版 | 狠狠躁夜夜躁人人爽天天段 | 99视频在线观看高清 | 五月婷婷狠狠 | 永久毛片| 国产真实一区二区三区 | 国产一区二区精品久 | 污污网站入口 | 欧美日韩中文一区 | 成人黄色短视频 | 99免费观看视频 | 一级毛片视频播放 | 日韩美女在线视频 | 久久久久久久国产视频 | 国产门事件真实视频在线 | 亚洲六月丁香色婷婷综合久久 | 激情婷婷网 | 扫毒3电影在线观看免费软件 | 97公开免费视频 | 久久99久久99精品免观看麻豆 | 久久精品国产福利国产琪琪 | 男女做视频网站免费观看 | 五月婷婷六月丁香激情 | 狠狠狠色丁香婷婷综合久久五月 | 99re视频在线观看 | 久久精品视频国产 | 2020年最新国产精品视频免费 | 男人的天堂2020 | 善良的嫂子3中文字幕 | 四虎成人免费大片在线 | 精品久久久一二三区 | 涩色婷婷狠狠第四四房社区奇米 |