Heim  >  Artikel  >  Backend-Entwicklung  >  服务器下的程序会用curl进行一次网络请求,请教怎么解决整个网站卡的有关问题

服务器下的程序会用curl进行一次网络请求,请教怎么解决整个网站卡的有关问题

WBOY
WBOYOriginal
2016-06-13 13:13:03864Durchsuche

服务器上的程序会用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,那么就会导致服务器其它进程一直等待文件锁释放,因而浏览器端长时间得不到响应。
如果如我所说,那么解决方法我想你也知道

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn