• swoole_timer_after
    • 协程模式
    • 使用示例

    swoole_timer_after

    在指定的时间后执行函数。

    1. int swoole_timer_after(int $after_time_ms, mixed $callback_function);

    swoole_timer_after函数是一个一次性定时器,执行完成后就会销毁。此函数与PHP标准库提供的sleep函数不同,after是非阻塞的。而sleep调用后会导致当前的进程进入阻塞,将无法处理新的请求。

    执行成功返回定时器ID,若取消定时器,可调用 swoole_timer_clear

    • $after_time_ms 指定时间,单位为毫秒,最大不得超过 86400000
    • $callback_function 时间到期后所执行的函数,必须是可以调用的。
    • 可以使用匿名函数的use语法传递参数到回调函数中

    协程模式

    在协程环境下swoole_timer_after回调中会自动创建一个协程,可以直接使用协程相关API,无需调用go创建协程。

    可设置enable_coroutine关闭自动创建协程

    使用示例

    1. swoole_timer_after(1000, function() use ($str) {
    2. echo "timeout, $str\n";
    3. });