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

timer定時(shí)器問題 不能清除定時(shí)器

jay807750811

問題描述:

public static function onClose($client_id){ 

        $timer_id = Timer::add(5, function($online_uid,$room_id,$redis){

              ....略...
        },array($online_uid,$room_id,$redis),false);

//echo $time_id;        //打印出72
$redis->SET("offline_timer:{$online_uid}",$timer_id);

}

 public static function onMessage($client_id, $message){
            ....略...
            $timer_id = $redis->GET("offline_timer:{$online_uid}");
            // echo $time_id     //打印出72
            $result = Timer::del($timer_id);
}

我在onClose里面創(chuàng)建了一個(gè)定時(shí)器,在5秒之后去實(shí)現(xiàn)一些功能,但是如果我想在這段等待的時(shí)間內(nèi)想取消這個(gè)定時(shí)器,發(fā)現(xiàn)不能清除,在5秒之后還是執(zhí)行了定時(shí)器里面的操作。我創(chuàng)建定時(shí)器之后和在刪除定時(shí)器之前分別打印time_id,發(fā)現(xiàn)是一樣的,理論上我想刪除的定時(shí)器是用一個(gè),這是什么原因?

6354 1 0
1個(gè)回答

walkor 打賞

Worker是多進(jìn)程的,
進(jìn)程1設(shè)置的定時(shí)器,
在進(jìn)程2是無法刪除的。

  • 啊噠梨 2017-12-06

    跨進(jìn)程刪除定時(shí)器有解決方案嗎?

  • walkor 2017-12-06

    1、業(yè)務(wù)想辦法把定時(shí)器添加和刪除放在同一個(gè)進(jìn)程。
    2、用channel做進(jìn)程間通訊
    3、利用外部存儲(chǔ)(redis等)存儲(chǔ)定時(shí)器一個(gè)狀態(tài),刪除定時(shí)器的時(shí)候刪除存儲(chǔ)的狀態(tài)。定時(shí)器運(yùn)行時(shí)讀下狀態(tài)決定是否刪除當(dāng)前定時(shí)器或者是否運(yùn)行定時(shí)器

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