timer定时器问题 不能清除定时器

0

问题描述:


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里面创建了一个定时器,在5秒之后去实现一些功能,但是如果我想在这段等待的时间内想取消这个定时器,发现不能清除,在5秒之后还是执行了定时器里面的操作。我创建定时器之后和在删除定时器之前分别打印time_id,发现是一样的,理论上我想删除的定时器是用一个,这是什么原因?

已邀请:

walkor

赞同来自:

Worker是多进程的,
进程1设置的定时器,
在进程2是无法删除的。

要回复问题请先登录注册