reactPHP过程开始切断定时器

问题描述:

我这里有一个reactPHP循环有两个计时器事件:reactPHP过程开始切断定时器

$loop = \React\EventLoop\Factory::create(); 

$process = new \React\ChildProcess\Process("php wait5seconds.php"); 

$process->on('exit', function($exitCode, $termSignal) { 
    echo "Process Finished".PHP_EOL; 
}); 

$loop->addTimer(2, function($timer) { 
    echo "TWO".PHP_EOL; 
}); 

$loop->addTimer(1, function($timer) use ($process) { 
    echo "ONE".PHP_EOL; 
    $process->start($timer->getLoop()); 
}); 

$loop->run(); 

没有儿童过程中的定时器正常工作,我得到了放:

ONE 
TWO 

但当我在第一个定时器中启动一个进程时,第二个定时器将被阻塞,直到进程结束。我得到的输出:

ONE 
Process Finished 
TWO 

不应该是异步?过程是睡眠(5)所以我期望:

ONE 
TWO 
Process Finished 

我错过了什么?

适合我。

您的问题可能是php wait5seconds.php导致错误,因此不会运行5秒。如果你用sleep 5替换它,一切都按预期工作。

+0

你在linux上吗?我在windows –

+0

是的,你可以在Windows上尝试'timeout 5'。 – kelunik