亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

ReadyScheduler

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

基礎(chǔ)測試使用

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ù)啟動的時候,依賴 serviceOne,serviceTwo 兩個服務(wù),例如鏈接第三方api等。
         * 在服務(wù)未就緒的時候,我們不希望本機器開始對外服務(wù)
         */
        $register->add($register::onWorkerStart,function ($serv, $workerId){
            if($workerId == 0){
                /*
                 * 若不是強制準(zhǔn)備,請注意addItem,unready,ready實現(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)來的時候,判斷依賴的服務(wù)是否就緒,等待時間為1s (tcp,ws服務(wù)也同理)
         * 在服務(wù)未就緒的時候,我們先拒絕服務(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久久成人国产精品 | 国产欧美亚洲精品 | 亚洲视频黄色 | 亚洲成人综合视频 | 日韩黄色在线视频 | 日韩精品电影一区二区 | 天天干天天操天天爽 | 国产一区免费看 | 国产97色在线 | 国产 | 国产主播在线播放 | 四虎网址在线观看 | 亚洲资源在线播放 | 欧美一级久久久 | 成人激情视频网站 | 日韩毛片网 | 成人av男人的天堂 | 九九九久久久久 | 九色av | 免费福利在线 | 免费三及片 | 欧美一区二区日韩 | 亚洲一级视频在线观看 | 色444| 国产原创视频在线观看 | 精品一区二区三区免费观看 | 欧美一区二区三区四区在线观看 | 中文字幕网站在线观看 | 色婷婷久久久 | 伊人久久影视 | 日韩在线免费视频 | 在线观看国产日韩 | 91一区二区三区在线观看 | 成人精品一级毛片 | 国产久草视频 | 久久九九视频 | 在线免费观看国产 | 精品久久久久久久久久久 |