婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP http請求超時問題解決方案

PHP http請求超時問題解決方案

熱門標簽:黔江400電話如何辦理 中原區電話機器人價格 地圖標注視頻廣告入駐 OMG地圖標注app gps 地圖標注軟件 電銷機器人便宜的有嗎 招標自動語音外呼系統 400電話鄭州申請 ai電話機器人加盟代理

一,http請求超時時間

可能出現的場景:

1,curl進程運行了一個世紀還木結束,curl的時候設置了超時時間 --connect-timeout 1000

2,operation timed out after 1000 milliseconds with 0 bytes received

3,connect() timed out!

wget對超時時間, 是有分階段的, 比如說請求的超時, 傳輸的超時,同樣HTTP請求有兩個超時時間:一個是連接超時時間,另一個是數據傳輸的最大允許時間,出現問題就要看是哪個超時時間出問題了。

curl命令行
連接超時時間用 --connect-timeout 參數來指定,數據傳輸的最大允許時間用 -m 參數來指定,時間是毫秒

例如:

curl --connect-timeout 10 -m 20 "http://***"

連接超時的話,出錯提示形如:

curl: (28) connect() timed out!

數據傳輸的最大允許時間超時的話,出錯提示形如:

curl: (28) Operation timed out after 2000 milliseconds with 0 bytes received

使用PHP的curl_init

?php // create a new cURL resource $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, 0);

//連接超時時間 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1000);

//數據傳輸的最大允許時間 curl_setopt($ch, CURLOPT_TIMEOUT, 1000); // grab URL and pass it to the browser curl_exec($ch); // close cURL resource, and free up system resources curl_close($ch);

//使用curl_error($ch)查看錯誤的詳情 var_dump(curl_error($ch));

二,頁面執行時間

當你的頁面有大量數據時,建議使用set_time_limit()來控制運行時間,配置該頁最久執行時間。

設定一個程式所允許執行的秒數,如果到達限制的時間,程式將會傳回錯誤,時間是秒單位。

php.ini:它預設的限制時間是30秒,max_execution_time的值定義在結構檔案中,如果將秒數設為0,表示無時間上的限制,修改后重新啟動apache/nginx服務器

php代碼:set_time_limit(800);

這個函數指定了當前所在php腳本的最大執行時間為800秒,實際上最大執行時間=php.ini里的max_execution_time數值 - 當前腳本已經執行的時間 + 設定值

假如php.ini里的max_execution_time=30,當前腳本已經執行5秒,則:

最大執行時間=30-5+800=825秒。

注意 : 當PHP是執行在安全模式時,set_time_limit( )將不會有結果,除非是關閉安全模式或是修改結構檔案中的時間限制。

三,php長連接

如果我們需要一個腳本持續的運行,那么我們就要通過php長連接的方式,來達到運行目的。通過 set_time_limit 來設置一個腳本的執行時間為無限長;然后使用 flush() 和 ob_flush() 來清除服務器緩沖區,隨時輸出腳本的返回值。

如下面這段腳本:

?php
header("Content-Type: text/plain");
set_time_limit(0);
$infoString = "Hello World" . "\n";
while( isset($infoString) )
{
  echo $infoString;
  flush();
  ob_flush();
  sleep(5);
}
?>

當我們執行后,每隔5秒鐘,我們會得到一行 Hello World ,如果不按停止按鈕,瀏覽器會不停的一行一行繼續加載。

通過這一方法,我們可以完成很多功能,例如機器人爬蟲、即時留言板等程序。

如果要停止運行只能重啟php-fpm:

查看php-fpm進程數:

ps aux | grep -c php-fpm

查看運行內存

/usr/bin/php -i|grep mem

重啟php-fpm

/etc/init.d/php-fpm restart

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • AngularJs的$http發送POST請求,php無法接收Post的數據問題及解決方案
  • PHP使用Http Post請求發送Json對象數據代碼解析
  • PHP利用curl發送HTTP請求的實例代碼
  • php如何獲取Http請求
  • PHP swoole中http_server的配置與使用方法實例分析
  • PHP的HTTP客戶端Guzzle簡單使用方法分析
  • 對php 判斷http還是https,以及獲得當前url的方法詳解
  • PHP獲取HTTP body內容的方法
  • PHP實現模擬http請求的方法分析
  • HTTP頭隱藏PHP版本號實現過程解析

標簽:池州 濟源 北京 孝感 日照 阿里 哈密 那曲

巨人網絡通訊聲明:本文標題《PHP http請求超時問題解決方案》,本文關鍵詞  PHP,http,請求,超時,問題,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP http請求超時問題解決方案》相關的同類信息!
  • 本頁收集關于PHP http請求超時問題解決方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 长治市| 东辽县| 永善县| 平谷区| 两当县| 亚东县| 金川县| 莫力| 远安县| 酒泉市| 淳化县| 沙洋县| 铜川市| 新昌县| 马龙县| 化德县| 股票| 谢通门县| 大竹县| 兴隆县| 三亚市| 固安县| 六安市| 诸暨市| 天门市| 山阳县| 庆阳市| 资源县| 邻水| 化德县| 淮滨县| 昌江| 桑植县| 凌海市| 鲁山县| 合肥市| 西充县| 舟曲县| 永吉县| 内江市| 平度市|