视频质量检测服务程序:videoDetect.exe,运行时blrun.exe videoDetect.exe;使用blrun监听videoDetect.exe进程,blrun是死循环不会退出。
在页面中实现开启服务功能时如果直接system调用blrun.exe videoDetect.exe,页面会被阻塞,因为blrun是死循环不会退出。
为了让页面不受被调用的进程的影响而阻塞,应该使用异步调用方式。首先将运行方式做成批处理文件start.bat供页面调用。start.bat内容如下:
start "" "%~dp0\blrun.exe" "%~dp0\videoDetect.exe"
页面中使用进程I/O函数popen()后台运行start.bat,通过创建一个管道,调用 fork 产生一个子进程,执行start.bat以运行命令来开启一个进程,这样页面
就不会因为等待blrun的退出而阻塞。
$cmd="start.bat";
$file = popen($cmd,"r");
pclose($file);
在页面中实现开启服务功能时如果直接system调用blrun.exe videoDetect.exe,页面会被阻塞,因为blrun是死循环不会退出。
为了让页面不受被调用的进程的影响而阻塞,应该使用异步调用方式。首先将运行方式做成批处理文件start.bat供页面调用。start.bat内容如下:
start "" "%~dp0\blrun.exe" "%~dp0\videoDetect.exe"
页面中使用进程I/O函数popen()后台运行start.bat,通过创建一个管道,调用 fork 产生一个子进程,执行start.bat以运行命令来开启一个进程,这样页面
就不会因为等待blrun的退出而阻塞。
$cmd="start.bat";
$file = popen($cmd,"r");
pclose($file);