国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)於Timer進(jìn)入方式

horskin

問題描述

使用Laravel 架設(shè) gateway workerman
情境:目前每分鐘有排程會(huì)倒數(shù)60秒
程式碼如下

public static function StartGame()
    {
        Gateway::$registerAddress = '127.0.0.1:1236';
        $GameData = PowerSystemCache::Get_Status();
        if(!$GameData['status']){
            //deal flag
                ...
            $time = 60;
            $stage_message = array('status'=>true,'action'=>'CountDown','flag'=>$flag,"count_time"=>$time,'time' => date('Y-m-d H:i:s'));
            for($i=1;$i<=$time;$i++) {
                $t = $i;
                $timer = Timer::add($i, function() use ($room_type,$stage_message,$time,$t){
                    $stage_message["timer"] = $time - $t;
                    Gateway::sendToGroup($room_type, json_encode($stage_message));
                },null,false);
            }

            $newt_timer = Timer::add(60, function() use($room_type,$flag){
                PowerSystemCache::Set_Status(false,$flag);
                self::EndGame($flag);
                //end game
                $stage_message = array('status'=>true,'action'=>'EndGame','time' => date('Y-m-d H:i:s'));
                Gateway::sendToGroup($room_type, json_encode($stage_message));
                self::StartGame();
            },null,false);
            PowerSystemCache::Set_Status(true,$flag);
        }
        return;
    }

此timer在每60秒後會(huì)遞迴

方案探討

問題一
首先想先詢問這樣實(shí)作timer的方式會(huì)不會(huì)有問題?因?yàn)槭且淮紊?0個(gè)timer分別從60s~0s

問題二:進(jìn)程進(jìn)入方式

目前方法

啟動(dòng)這個(gè)timer的方式,是透過client socket 傳送封包到指定方法例如:StartGame()的方式進(jìn)入循環(huán)排程,因?yàn)檫@個(gè)方法是會(huì)一直遞迴也有加lock在方法內(nèi)。但是這樣這個(gè)進(jìn)程是否會(huì)受到client端影響而造成不穩(wěn)定?

方法二

目前有想採用task方法來執(zhí)行StartGame方法讓其進(jìn)行遞迴,使其不受client端影響導(dǎo)致這個(gè)線程受影響,是否這個(gè)方法會(huì)比較可行?麻煩大大協(xié)助分析

延伸問題
之所以會(huì)探討這個(gè)問題是因?yàn)?,我有其他laravel task 因?yàn)橛袠I(yè)務(wù)邏輯error 導(dǎo)致socket排程中斷
是否只是因?yàn)闃I(yè)務(wù)邏輯error進(jìn)而導(dǎo)致workerman 受影響?

1182 1 0
1個(gè)回答

walkor 打賞

問題一
沒問題

問題二:進(jìn)程進(jìn)入方式
需要自己測試驗(yàn)證,根據(jù)你提供的資訊無法給出建議

年代過于久遠(yuǎn),無法發(fā)表回答
??