Google App Engine(GAE) - 忽略PHP cURL超时

时间:2017-04-26 20:15:48

标签: php google-app-engine curl google-cloud-platform libcurl

查看以下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秒钟后):

  

string(43)"在2529毫秒后解决超时时间" INT(2)

在GAE远程环境中运行它,我收到以下响应(约40秒后):

  

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

为什么Google App Engine会忽略cURL超时选项?

1 个答案:

答案 0 :(得分:1)

请检查此链接。 PHP cURL: CURLOPT_CONNECTTIMEOUT vs CURLOPT_TIMEOUT

CURLOPT_TIMEOUT是您允许libcurl将数据传输到服务器的最长时间,这并不意味着服务器将在您设置的超时时间内响应。