swoole提供了类似JavaScript的setInterval/setTimeout异步高精度定时器,粒度为毫秒级。使用也非常简单。

程序代码

  1. //每隔2000ms触发一次
  2. swoole_timer_tick(2000, function ($timer_id) {
  3. echo "tick-2000ms\n";
  4. });
  5. //3000ms后执行此函数
  6. swoole_timer_after(3000, function () {
  7. echo "after 3000ms.\n";
  8. });
  • swoole_timer_tick 函数就相当于setInterval,是持续触发的
  • swoole_timer_after 函数相当于setTimeout,仅在约定的时间触发一次
  • swoole_timer_tickswoole_timer_after函数会返回一个整数,表示定时器的ID
  • 可以使用 swoole_timer_clear 清除此定时器,参数为定时器ID