我希望尽快进行一堆 REST api 调用。我目前有大约 1,000 个请求要提出。
任何处理或类似的事情都不需要这些调用的结果。我只需要将它们全部发布到 api url。
我当然在我的循环中尝试过,这非常慢。我也尝试过使用 curl_multi_exec ,但这也很慢。这是那个代码。
foreach($users as $user){
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mandrill-PHP/1.0.36');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send.json');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($mandril_message));
curl_multi_add_handle($mh,$ch);
}
$active = null;
//execute the handles
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
关于如何快速做到这一点的任何想法。在没有 curl 代码的情况下,我的其余代码只需要一秒钟左右即可完成。