× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

Timer::clear

使用定时器ID来删除定时器。

bool Swoole\Timer::clear(int $timer_id);

函数风格别名是swoole_timer_clear

  • $timer_id,定时器ID,调用Timer::tickTimer::after后会返回一个整数的ID
  • Swoole\Timer::clear不能用于清除其他进程的定时器,只作用于当前进程

使用示例

$timer = Swoole\Timer::after(1000, function(){
    echo "timeout\n";
});

var_dump(Swoole\Timer::clear($timer));
var_dump($timer);

// 输出:bool(true) int(1)
// 不输出:timeout

  • 13930967060

    被clear的定时器代码如果还在执行中,会被直接中断吗?还是会继续执行直到完毕?

  • 一曲小诗

    php是单线程的,如果定时器的代码在执行,一会不会执行clear代码的。所以会继续执行到完毕。

  • 13016604333

    定时器任务是异步执行的,如果后面关闭的话 定时器的任务就会中断