swoole_process::alarm

高精度定时器,是操作系统setitimer系统调用的封装,可以设置微秒级别的定时器。定时器会触发信号,需要与swoole_process::signalpcntl_signal配合使用。

function swoole_process::alarm(int $interval_usec, int $type = ITIMER_REAL) : bool

alarm不能和Swoole\Timer同时使用
alarm在1.8.13或更高版本可用

使用实例

swoole_process::signal(SIGALRM, function () {
    static $i = 0;
    echo "#{$i}\talarm\n";
    $i++;
    if ($i > 20) {
        swoole_process::alarm(-1);
    }
});

//100ms
swoole_process::alarm(100 * 1000);