swoole-1.7.14增加了tick定时器,解决了addtimer存在的各种问题。
swoole_timer_tick(1000, function ($timer_id) { echo "tick-1000ms/n"; swoole_timer_clear($timer_id); }) swoole_timer_tick(2000, function () { echo "tick-2000ms/n"; })
swoole_timer_tick和swoole_timer_after原理是相同的,区别是after只执行一次就会销毁。tick定时器会持续执行,直到调用了swoole_timer_clear清除定时器。
与PHP代码中的pcntl_alarm不同,swoole的定时器是基于EventLoop实现的,不依赖系统信号和PHP的tick机制,所以效率非常高。即使添加大量定时器,CPU消耗也是很低的。PHP在过去没有像JavaScript这样方便的定时器功能,现在有swoole就可以很好地解决。
在网络游戏程序中经常要用定时器,PHP+swoole将会成为最佳的技术方案。