php 与 curl_multi 多次卷曲成相同的 API

php curling to a same API numerous times with curl_multi

我有一个 API,我同时调用了至少 10 次不同的信息。

这是我目前正在使用的功能。

$mh = curl_multi_init();
$arr = array();
$rows = array();

while ($row = mysqli_fetch_array($query)) {
    array_push($arr, initiate_curl($row, $mh));
    array_push($rows, $row);
}
$running = null;
for(;;){
  curl_multi_exec($mh, $running);
  if(!$running){
     break;
  }
  curl_multi_select($mh);
  usleep(1);
}

sleep(1);

foreach($arr as $curl) {curl_multi_remove_handle($mh, $curl);}
curl_multi_close($mh);
foreach($arr as $key=>$curl) {
    $result = curl_multi_getcontent($curl);
    $dat = simplexml_load_string($result);
    check_time($dat, $rows[$key], $fp);
}

当请求数量较少时它工作正常,但当它增长时一些卷曲不会带回适当的数据。即它们 return 为空,我猜是因为服务器在任何事情发生之前都经过了..

我该怎么做才能完成这项工作?我在 php 或服务器方面没有经验,并且很难浏览文档..

如果我创建另一个 php 文件,在其中我卷曲到 API 来处理数据,并且 multi_curl php 文件,它会工作吗更好的? (因为在那种情况下,某些调用不 return 数据就没那么重要了。这会不会使我的服务器不断超载?

这不是 curl 问题,这是服务器利用率问题,请尝试升级服务器。

有用的链接:link1 , link2

Note: Be careful when using infinite loop [for(;;)] and regularly monitor CPU utilisation.