2017-04-26 51 views
2

看看下面的PHP代码:谷歌的App Engine(GAE) - PHP卷曲超时被忽略

$start = time(); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://gmaxil.com'); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Java/1.7.0_60'); 
curl_setopt($ch, CURLOPT_TIMEOUT, 2); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_exec($ch); 

$end = time(); 

var_dump(curl_error($ch)); 
var_dump($end-$start); 

curl_close($ch); 

对当地GAE环境(我的机器)运行它,我得到以下响应(〜2秒后):

串(43)的 “解决后2529毫秒超时” INT(2)

上GAE远程环境中运行它,我得到以下反应(〜40秒LAT ER):

字符串(34) “无法解析主机 'gmaxil.com'” INT(40)

为什么谷歌应用程序引擎忽略卷曲超时选项?

+0

我猜测它并不会忽略超时 - 因为它不会超时。这只是立即失败。 –

+0

@AlexHowansky但是我为什么在本地和生产环境之间有不同的行为? –

+0

因为本地有DNS工作。远程已破坏立即失败的DNS。 (再次,这是一个猜测...) –

回答