Timer停止操作

callplay
<?php
require_once DIR . '/Workerman/Autoloader.php';
use Workerman\Worker;
use Workerman\Lib\Timer;

$w = new \Workerman\Worker(); 
$w->onWorkerStart=function(){ 
    $timer_id=Timer::add(1, function ($client_id) {
         var_dump(date("Y-m-d H:i:s") . ' timer_id : ' . $timer_id . ' ,client_id : ' . $client_id);
     },,true);

     Timer::add(5,function()use($timer_id){
          var_dump(date("Y-m-d H:i:s") . ' check timer id : '.$timer_id);
     },,true);
}; 
?>

output

2019-03-07 01:00:01 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:02 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:03 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:04 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:05 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:05 check timer id : 3
2019-03-07 01:00:06 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:07 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:08 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:09 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:10 timer_id : 3 ,client_id : 7f0000010b5700000002
2019-03-07 01:00:10 check timer id : 3
2019-03-07 01:00:15 check timer id : 3
2019-03-07 01:00:20 check timer id : 3
2019-03-07 01:00:25 check timer id : 3

请问为什么timer_id 停止操作呢,检查了timer值是还有,这个是什么原因导致?

2685 1 0
1个回答

blogdaren

1、什么是timer_id 停止操作? 看不懂,另外没有报告什么错误信息吗?
2、忽略语法,贴的代码看上去没什么问题,我的环境【Workerman version:3.5.14          PHP version:7.2.8】工作OK。

  • callplay 2019-03-07

    如果看 output timer_id 是每一秒钟工作,它就继续工作但是有时候会停止工作,我也没有写删掉timer的命令,现在用 workerman 3.4.5 PHP version 5.5.7 会有其他原因查看timer停止工作吗?

年代过于久远,无法发表回答
🔝