【发布时间】:2016-01-13 17:37:23
【问题描述】:
事实上,我有一个proc_open 函数,它将执行一个命令并将它的子命令传递给它。这里有一个问题,有时会发生而不是通常。
问题
当我想得到进程管道输出时,目标服务器没有响应,脚本将等待响应......
问题
我想说等待响应 20 秒,如果您没有得到任何响应。从函数返回。这一点很重要,因为我不想停止脚本执行而只是从函数返回。
我必须使用多线程库作为 POSIX 吗?
有没有办法实现这个想法?
任何想法将不胜感激。在此先感谢
代码示例
<?PHP
set_time_limit(0);
.....
public function test()
{
foreach ($this->commands as $cmd)
{
fwrite($pipes[0], "$cmd \n");
//Sometimes PHP stuck on the following line
//Wait for almost 20 sec if respond did not came return
$read = fread($pipes[1], 2096) . "\n";
}
}
【问题讨论】: