日期:2014-05-17  浏览次数:20470 次

服务器上的程序会用curl进行一次网络请求,请问如何解决整个网站卡的问题?
上一贴没说清楚,重新说一下。

a.php b.php c.php 三个页面。

打开a.php页页后。
a.php会用ajax请求b.php。
b.php里面用curl进行数据采集。比如采集zhidao.baidu.com/xx.html
如果这个时候baidu.com反映慢。curl不能很快完成这次请求。那么。整个网站就会卡住。这个时候打开a.php c.php都会卡在那里直到那个ajax请求完成。
请问有何良方?

现在我在写一个类似只看楼主功能的东西。模式差不多,
www.onlylz.com 貌似他的并没有此起整个网站卡

------解决方案--------------------
CURLOPT_TIMEOUT,设置超时时间?
非阻塞?
http://blog.csdn.net/linvo/article/details/5956629
------解决方案--------------------
那个ajax请求完成。可以设置成异步方式。
采集数据如果没有特殊要求,可以定时采集,入库。然后在获取
------解决方案--------------------
这个时候打开a.php c.php都会卡在那里直到那个ajax请求完成。
你是用的什么浏览器? 什么服务器系统?

对浏览器来说,每个请求都是不相关的,没有同一时间只能发起一个请求的说法。
对服务器来说,为每个请求分配的资源都是独立的,没有同一时间只能处理一个请求的说法。
因而如果造成阻塞,只能是程序自作孽,比如PHP中session的文件锁。
如果你的网站的c.php a.php页面均启用了session,那么就会导致服务器其它进程一直等待文件锁释放,因而浏览器端长时间得不到响应。
如果如我所说,那么解决方法我想你也知道