swoole_timer_add

增加定时器,用于fpm/apache/cli环境下。

swoole_timer_add($interval, $callback);

swoole_timer_add(3000, function($interval) {
    echo "timer[$interval] :".date("H:i:s")." call\n";
});
  • $interval为定时器间隔,单位是毫秒,不能存在同样时间间隔的2个定时器
  • $callback为定时器的事件回调函数

需要swoole-1.6.12+
swoole_server中不可使用
1.8.0以上版本即将移除此定时器,请使用swoole_timer_tick
定时器必须在全异步模式下才能使用,同步阻塞的代码中不要使用


  • 匿名

    同一时间间隔的定时器,也是只能定义一个么?

  • 零校技术支持

    定时器必须在全异步模式下才能使用,同步阻塞的代码中不要使用

    这意味着,如果在里面使用阻塞代码,比如 file_get_contents,sleep ,将会导致timer阻塞,不会按照预期每隔固定时间执行

    swoole_timer_add(1000,function(){ sleep(3); echo "ff"; });

    结果是每4s执行一次 ,也就意味着只能是单一任务执行。如果需要不阻塞,可以 新建Process 来完成,或者使用其他异步方式