0
我正在向一堆50個站點發送Curl請求,以使用Crons作業檢查其運行狀態。然而我每次都設法得到前10-15個站點的迴應。我認爲之後服務器可能會超載並停止執行。如何防止在PHP中的curl請求期間服務器超載
示例代碼:
foreach ($sites as $site) {
if(Visit("http://www.domain.com")) {
//saving in database
}
}
function Visit($url)
{
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$page=curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpcode>=200 && $httpcode<300) return true;
else return false;
}
請建議我一些技術來防止服務器超載,並設法讓所有站點的響應。
當您的服務器停止運行時,您是否收到錯誤消息? – Ibu
顯示使用的捲曲代碼。這聽起來像你應該使用curl_multi * – 2012-11-19 20:00:43
@Ibu我試着在測試控制器中運行此代碼,並在10 - 15個站點後顯示服務器配置錯誤... – user1836842