當php代碼要對外請求多個介面的時候 , 可以使用下面的方式并行執行多個請求
主要是使用curl_multi_exec函式實作
代碼中請求的test.php檔案 , 是sleep(10)秒
如果按傳統的逐行執行的方式 , 請求兩次這個介面代碼會阻塞20秒的時間 , 現在使用同時并行執行的方式,代碼只會阻塞10秒
并且請求也是會同時到達對方介面的
<?php // 創建一對cURL資源 $ch1 = curl_init(); $ch2 = curl_init(); // 設定URL和相應的選項 curl_setopt($ch1, CURLOPT_URL, "http://81.69.45.114/test/test.php"); curl_setopt($ch1, CURLOPT_HEADER, 0); curl_setopt($ch2, CURLOPT_URL, "http://81.69.45.114/test/test.php"); curl_setopt($ch2, CURLOPT_HEADER, 0); // 創建批處理cURL句柄 $mh = curl_multi_init(); // 增加2個句柄 curl_multi_add_handle($mh,$ch1); curl_multi_add_handle($mh,$ch2); $active = null; // 執行批處理句柄 do { $mrc = curl_multi_exec($mh, $active); var_dump($mrc); } 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_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh);
執行后nginx日志的展示:


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/264067.html
標籤:PHP
上一篇:后期靜態系結在PHP中的使用
下一篇:Python亂碼問題九問
