使用Php實現異步調用

結合用戶的請求觸發,能夠實現計劃任務php

使用popen/pclose

函數原型

resource popen ( string $command , string $mode )
//打開一個指向進程的管道,該進程由派生給定的 command 命令執行而產生
  • command :命令 mode:模式("r"/"w")

返回一個和 fopen() 所返回的相同的文件指針,只不過它是單向的(只能用於讀或寫)而且必須用 pclose() 來關閉。此指針能夠用於 fgets()fgetss()fwrite()。 當模式爲 'r',返回的文件指針等於命令的 STDOUT,當模式爲 'w',返回的文件指針等於命令的 STDIN。curl

須要忽略輸出,使新的進程在後臺運行函數

pclose(popen("php test.php &", 'r'));

若是要同步使用的化相似下邊這樣的url

//讀取運行輸出
$handle = popen('php '.APPPATH.'task/ldap.php '.$stuno.' '. (int)$understu, 'r');
$info = fread($handle,10000);
pclose($handle);

使用curl

設置超時時間就行.net

CURL常見選項指針

CURLOPT_TIMEOUT 容許 cURL 函數執行的最長秒數code

CURLOPT_TIMEOUT_MS能夠設置毫秒級別的超時,可是注意下邊進程

設置cURL容許執行的最長毫秒數。 若是 libcurl 編譯時使用系統標準的名稱解析器( standard system name resolver),那部分的鏈接仍舊使用以秒計的超時解決方案,最小超時時間仍是一秒鐘。get

相關文章
相關標籤/搜索