主要用来取代crontab这样的定时器,能实现毫秒级的精度。

  • 基于reactor线程(在task worker进程中使用系统定时器)

  • 基于epoll的timeout机制实现

  • 使用堆存放timer,提高检索效率

Timer常见问题:

1、传递参数
可以通过timer的第三个参数进行传递,也可以使用use 闭包

2、传递对象
onTimer是在调用tick方法的进程中回调(不能是匿名函数),因此可以直接使用在worker进程中声明的对象(局部变量无法访问)

3、timer的清除
tick方法会返回time_id,可以使用swoole_timer_clear清除指定的timer



登陆发表评论