我的应用程序使用大约70个外部服务。在init函数上,我想测试它们是否都可用并且可以生成json。我试图通过curl
通过并行curl
来做到这一点,但总是如果某些服务不可用,我必须等待所有超时(5秒),所以在最坏的情况下我的脚本会挂起{{1在应用程序中对init函数不利的秒。也许有人有更好的主意?
严格卷曲的代码:
70 * 5
我试图修改超时值,但在我的示例中,5秒是最佳值..
和相同版本的代码但具有并行卷曲:
foreach ($services as $key => $value) {
$url = $value['url'] . '?f=json';
$curl = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
curl_setopt($curl, CURLOPT_URL, $url);
$result = curl_exec($curl);
$result2 = json_decode($results, TRUE);
if ($result != FALSE && gettype($result) !== "integer"
&& !array_key_exists('error', $result)) {
$avaliableServices[$key] = TRUE;
}
}
我想知道是否有最快的方式?