我們編寫了一個腳本,用於從外部服務器提取數據。如果服務器出現故障,我們不希望我們的服務器等待數據,因爲我們處理了大量數據,而且我們不希望它陷入停滯狀態。爲了解決這個問題,如果超過幾百毫秒,我們會試圖超時。如何在PHP5 curl調用上設置超時?已發佈的CURL選項似乎不起作用
我發現了一些文件說CURLOPT_TIMEOUT_MS和CURLOPT_CONNECTTIMEOUT_MS應該在我的版本的PHP和libcurl中的可用,但它似乎並不被超時,即使我的超時設置爲1毫秒。
$url = "http://www.cnn.com;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,0); //Change this to a 1 to return headers
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 1);
$data = curl_exec($ch);
curl_close($ch);
有沒有人知道我們做錯了什麼或另一種方式做到這一點?