多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## Timer定时器 <br> ## 定时器原理 woole提供了类似JavaScript的`setInterval`/`setTimeout`异步高精度定时器,粒度为毫秒级。使用也非常简单。 <br> ## 定时器使用 在Swoole中,定时器的函数原型如下: ~~~ // function onTimer(int $timer_id, mixed $params = null); // 回调函数的原型 int swoole_timer_tick(int $ms, mixed $callback, mixed $param = null); int swoole_server::tick(int $ms, mixed $callback, mixed $param = null); // function onTimer(); // 回调函数的原型(不接受任何参数) void swoole_timer_after(int $after_time_ms, mixed $callback_function); void swoole_server::after(int $after_time_ms, mixed $callback_functio ~~~ <br> ## 示例: ~~~ //每隔2000ms触发一次 swoole_timer_tick(2000, function ($timer_id) { echo "tick-2000ms\n"; }); //3000ms后执行此函数 swoole_timer_after(3000, function () { echo "after 3000ms.\n"; }); ~~~ * swoole_timer_tick函数就相当于setInterval,是持续触发的 * swoole_timer_after函数相当于setTimeout,仅在约定的时间触发一次 * swoole_timer_tick和swoole_timer_after`函数会返回一个整数,表示定时器的ID * 可以使用`swoole_timer_clear清除此定时器,参数为定时器ID