我有一个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);
}
当请求的数量很小时,它可以很好地工作,但是当它增长时,一些卷将不会返回适当的数据。也就是说,它们返回空值,我猜是因为服务器在发生任何事情之前就通过了。
我该怎么做才能使这个工作成功?我在PHP或服务器方面没有经验,并且很难浏览文档。
如果我创建另一个PHP文件,在该文件中我卷曲到API来处理数据,并多次卷曲该PHP文件,它会更好地工作吗?(因为在这种情况下,一些调用不返回数据就没有那么重要了。)这会经常使我的服务器过载吗?