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

    }
}
主站蜘蛛池模板: 久久这里只有精品视频99 | 久久久久99精品成人片三人毛片 | 久久99国产这里有精品视 | 五月激情开心网 | 四虎在线永久精品高清 | 成人日韩精品 | 高清乱码精品福利在线视频 | 色婷婷亚洲 | 中国二级毛片 | 久久免费精彩视频 | 99热网址| 精品欧美一区二区三区精品久久 | 晚上看的www视频高清免费动漫 | 久久久久香蕉视频 | 激情六月丁香婷婷 | 2021国产成人精品久久 | 久久99久久99精品免观看麻豆 | 久久综合精品不卡一区二区 | 福利国产在线 | 我想看一级播放片一级的 | 999成人国产精品 | 97桃色 | 久久精品综合一区二区三区 | 全免费a级毛片免费看视频免 | 婷婷激情五月综合 | 国产第一页精品 | 久久精品天天爽夜夜爽 | 亚洲激情欧美 | 欧美精品九九99久久在观看 | 99tav | 国产大片在线观看 | 久久国产精品亚洲综合 | 精品四虎免费观看国产高清午夜 | 欧美色啪 | 狠狠色狠狠色综合日日不卡 | 久久香蕉网站 | 97福利| 九九九在线视频 | 久久国产毛片 | 国产伦精一区二区三区视频 | 精品一区二区三区四区 |