我写了个php页 接收参数 并通过php的ssh2 去执行远程的linux机器上的脚本,获取各服务器的最新进程信息.
前台用jquery的ajax频繁的并发去访问这个php. 这样就能拿到各个服务器上的最新信息.但是同用户并发2个的时候,如果这2个都是存在并且有效的ip,这也没问题.
但是 如果有一个是一个无效的ip的时候,无效的ip会造成ssh2_connect阻塞,影响其他ip的处理.
此页面会停止一切后续请求的响应,直到ssh2_connect超时结束.
当然ajax能控制timeout是时间,但是这是客户端的超时,服务器php页面依然是在阻塞中.试过在php程序里加
set_time_limit(10);
以及在php.ini里控制
max_execution_time = 10;
但是 这两种 都没办法控制 ssh2_connect的超时时间.ssh2_connect 不受这两个参数的控制.同时也试过通过ping来判断是否是有效的ip
exec("ping $strIp -c 1", $list);
没有同用户并发时 ping这种方法没问题.
但是,同用户并发2个ping时,造成jquery的ajax访问的php页死掉.求高人指点迷经