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

Timer問題

小吳大大

在測試onMessage里面寫Timer發(fā)現(xiàn)無法清除,這讓我很郁悶。
代碼1:

use \GatewayWorker\Lib\Gateway;
use \GatewayWorker\Lib\Store;
use \GatewayWorker\Lib\Db;
use \Workerman\Lib\Timer;
class Event{
    public static function onMessage($client_id, $message)
    {
       switch($message_data)
        {
          case ‘re_login’:
                  $_SESSION = $time_interval=10;
              Timer::add($time_interval, function(){
                      var_dump('timer1-work');

          });

         }
    }
     public static function onClose($client_id)
     {
        Timer::del($_SESSION );
     }

}

代碼二:

class Event{
    public static function onMessage($client_id, $message)
    {
       switch($message_data)
        {
          case ‘re_login’:
                  $_SESSION = $time_interval=10;
              Timer::add($time_interval, function(){
                      var_dump('timer2-work');

          });

         }
    }
     public static function onClose($client_id)
     {
        Timer::delAll();
     }

}

}}}

以上兩種貌似都是判斷客戶端進入和退出時的操作,剛開始測試可以。但客戶端進出頻繁時,定時器會并發(fā)。清除不了。大神來幫本菜鳥分析一下唄。

4550 3 0
3個回答

walkor 打賞

$_SESSION = $time_interval=10;

你這句把$_SESSION寫死了固定是10了,Timer::del($_SESSION ); 當(dāng)然無效

這個你要自己面壁去了,就幾行代碼自己都看不出這么明顯的羅輯問題

另外:
businessWorker是多進程的,刪除定時器和設(shè)定定時器的進程必須是同一個。
參考手冊路由部分,使用示例二,將同一個client_id的請求綁定到同一個businessWorker上處理就ok了

http://wtbis.cn/gatewaydoc/gateway-worker-development/router.html

  • 暫無評論
小吳大大

抱歉,我已經(jīng)面壁了2小時。改了代碼,但是還是無效。退出的時候還是無法清除是為什么呢

  • 暫無評論
walkor 打賞

businessWorker是多進程的,刪除定時器和設(shè)定定時器的進程必須是同一個。
參考手冊路由部分,使用示例二,將同一個client_id的請求綁定到同一個businessWorker上處理就ok了

http://wtbis.cn/gatewaydoc/gateway-worker-development/router.html

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