PHP每隔几秒钟调用一次pcntl_signal_dispatch()


PHP calling pcntl_signal_dispatch() every few seconds

我有一个PHP脚本,它以阻塞模式从管道中读取。

while($input = trim(fgets($pipe))) { do some stuff }

我希望能够在脚本等待管道输入时每隔几秒钟执行一次pcntl_signal_dispatch,而不会干扰排队的管道读取。

有什么建议吗?

据我所知,当脚本被阻塞时,您无法响应信号。您必须从管道中进行非阻塞读取,或者在一个进程中进行读取并在另一个进程发送信号(读取子进程并通过管道传递回父进程,让父进程响应信号)。如果你在孩子身上阅读并通过管道传给父母,那么你实际上可能不需要这些信号。

阅读这篇文章,它会更有意义(包含分步代码):

http://www.tuxradar.com/practicalphp/16/1/9

以及整个父页面:

http://www.tuxradar.com/practicalphp/16/0/0