检查Web服务可用性的最快方法

时间:2014-03-24 17:44:28

标签: php json web-services curl

我的应用程序使用大约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;

  }
}

我想知道是否有最快的方式?

0 个答案:

没有答案