存档

2015年3月 的存档

swoole新增的tick定时器

2015年3月24日 评论已被关闭

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将会成为最佳的技术方案。

分类: Swoole扩展 标签: