主要用来取代crontab这样的定时器,能实现毫秒级的精度。
- 基于reactor线程(在task worker进程中使用系统定时器)
- 基于epoll的timeout机制实现
- 使用堆存放timer,提高检索效率
Timer常见问题:
1、传递参数
可以通过timer的第三个参数进行传递,也可以使用use 闭包
2、传递对象
onTimer是在调用tick方法的进程中回调(不能是匿名函数),因此可以直接使用在worker进程中声明的对象(局部变量无法访问)
3、timer的清除
tick方法会返回time_id,可以使用swoole_timer_clear清除指定的timer