五月天激情丁香,国产精品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
    {

    }
}
主站蜘蛛池模板: 毛片免费网站 | 51短视频版在线观看www免费 | 97超视频在线观看 | 欧美国产亚洲精品高清不卡 | 久久精品综合 | 午夜国产精品福利在线观看 | 国产一级一级毛片 | 97在线免费看视频 | 成人区精品一区二区不卡亚洲 | 国产美女在线免费观看 | 欧美视频性 | 五月香婷 | 97在线视频gj | 埃及艳后h版成c人版在线 | 欧美一级在线看 | 看片国产| 偷拍久久网 | 欧美写真视频一区 | 99热欧美 | 瑟瑟网站免费网站入口 | 久久只有精品 | 秋霞午夜鲁丝片午夜精品久 | 久久精品成人国产午夜 | 久久99免费 | 五月婷婷六月丁香在线 | 久久免费精品视频 | 五月婷婷影院 | 国产精品久久久免费视频 | 四虎永久免费影院在线 | 久久久久嫩草影院精品 | 噼里啪啦免费版在线观看 | 九九视频在线免费观看 | 欧美成人 综合网播九公社 欧美成年黄网站色视频 | 国产精品区一区二区三 | 青青草伊人 | 国产人成亚洲第一网站在线播放 | 国产一级一级毛片 | com激情影院| 九七色伦 | 丁香六月激情婷婷 | 精品国产91|