- Process::alarm
- 使用实例
- 使用实例
Process::alarm
高精度定时器,是操作系统setitimer系统调用的封装,可以设置微秒级别的定时器。定时器会触发信号,需要与Process::signal或pcntl_signal配合使用。
function Process::alarm(int $interval_usec, int $type = ITIMER_REAL) : bool
$interval_usec定时器间隔时间,单位为微秒。如果为负数表示清除定时器$type定时器类型0表示为真实时间,触发SIGALAM信号1表示用户态CPU时间,触发SIGVTALAM信号2表示用户态+内核态时间,触发SIGPROF信号
- 设置成功返回
true,失败返回false,可以使用swoole_errno得到错误码
alarm不能和Timer同时使用alarm在1.8.13或更高版本可用
使用实例
use Swoole\Process;Process::signal(SIGALRM, function () {static $i = 0;echo "#{$i}\talarm\n";$i++;if ($i > 20) {Process::alarm(-1);}});//100msProcess::alarm(100 * 1000);
