alarm不能和Timer同时使用
use Swoole\Process;
use function Swoole\Coroutine\run;
run(function () {
Process::signal(SIGALRM, function () {
static $i = 0;
echo "#{$i}\talarm\n";
$i++;
if ($i > 20) {
// 停止定时器
Process::alarm(-1);
// 向指定pid进程发送信号,默认发送0,检测进程是否存在
Process::kill(getmypid());
}
});
// 设置定时器间隔时间,单位为微妙
// 可以设置定时器类型 0为真实时间(默认) 1为cpu内核时间 2为用户态+内核态时间
Process::alarm(100 * 1000);
while(true) {
sleep(0.5);
}
});