我正在研究PHP Web應用程序,我需要在請求中執行一些網絡操作,例如根據用戶的請求從遠程服務器獲取某人。PHP中的異步函數調用
是否有可能模擬PHP中的異步行爲,因爲我必須將某些數據傳遞給函數,並且還需要從中輸出。
我的代碼是這樣的:
<?php
$data1 = processGETandPOST();
$data2 = processGETandPOST();
$data3 = processGETandPOST();
$response1 = makeNetworkCall($data1);
$response2 = makeNetworkCall($data2);
$response3 = makeNetworkCall($data3);
processNetworkResponse($response1);
processNetworkResponse($response2);
processNetworkResponse($response3);
/*HTML and OTHER UI STUFF HERE*/
exit;
?>
每個網絡操作需要大約5秒鐘即可完成總共15秒增加給我的應用程序的響應時間,我做3個請求。
makeNetworkCall()函數只是做一個HTTP POST請求。
遠程服務器是第三方API,所以我沒有任何控制權。
PS:請不要回答關於AJAX或其他事情的建議。我目前正在尋找,如果我可以通過PHP來做到這一點,可以用C++擴展或類似的東西。
嘗試使用'CURL'開火請求,並從網絡...... [PHP線程調用PHP函數異步(的 –
可能重複http://stackoverflow.com/questions/13846192/獲取一些數據php-threading-call-to-a-php-function異步) – CRABOLO
你可以使用PHP的[stream_select](https://secure.php.net/manual/en/function.stream-select.php)函數來運行非阻塞代碼。 [React](http://reactphp.org/)使用它創建一個[類似於node.js的事件驅動循環](https://speakerdeck.com/igorw/react-phpnw)。 –