PHP5 kıvırmak aramalarda bir zaman aşımı nasıl ayarlanır?

1 Cevap php

Biz bir dış sunucudan verileri çeker bir senaryo yazdım. Sunucu aşağı giderse biz çok veri işleme ve biz batağa saplanmış istemiyorum çünkü bizim sunucu veri bekliyor istemiyorum. Bu adres için, biz onlar birkaç yüz milisaniye daha alırsak bizim kıvırmak aramaları zaman aşımı çalışıyoruz.

Ben CURLOPT_TIMEOUT_MS ve CURLOPT_CONNECTTIMEOUT_MS php ve libcurl benim sürümü mevcut olması gerektiğini söyleyerek bazı belgeleri buldum, ama ben 1ms için zaman aşımını ayarlamak bile, zaman aşımına gibi görünmüyor.

$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);

Herkes yanlış ya da bunu yapmak için başka bir yolu ne yaptığınızı biliyor mu?

1 Cevap

bu gördüm unresponsive dns server and curl multi timeouts not working:

"...We have had some times where a site that we pull information has had dns server become unresponsive. When this happens the timeouts set in curl (php bindings) do not work as expected. It times out after 1min 14 sec with "Could not resolve host: www.yahoo.com (Domain name not found)" To make this happen in test env we modify /etc/resolv.conf to have a nameserver that does not exist (nameserver 1.1.1.1). No mater what they are set at

(CURLOPT_CONNECTTIMEOUT, CURLOPT_CONNECTTIMEOUT_MS 
, CURLOPT_TIMEOUT, CURLOPT_TIMEOUT_MS)

they don't timeout when we cant get to the DNS server. I use curl_multi because i we have multiple sources that we pull info from at the same time. The example below makes one call for example simplicity. And as a side note curl_errno does not return an error code even though there was an error. Not sure why..."