簡體   English   中英

PHP 處理無響應卷曲

[英]Php handling of unresponsive curl

我有一個 php 腳本,它使用 curl 從外部站點獲取數據,然后在三分鍾后重新加載自身,獲取新數據並顯示更新。 它工作正常,但如果出現網絡故障,我認為是 curl 沒有得到響應,php 只是掛起而不返回錯誤或任何東西。 然后需要手動終止這些掛起的進程。

我該如何處理這種情況? 調整卷曲選項? 修改它監視無響應卷曲的 php 腳本? 或者處理從瀏覽器到 ajax 的所有內容,包括觸發殺死掛起的 php 進程的腳本?


解決方案:我已經添加

curl_setopt($ch, CURLOPT_FAILONERROR = true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

到我的 curl 並將這些錯誤的捕獲添加到我的響應檢查部分。 從概念上講,這就是所需要的,CURLOPT_CONNECTTIMEOUT 似乎沒有必要,因為我已經設置了重新加載以防出錯。

它適用於手動斷開連接,但我還沒有看到腳本如何處理現實生活中的網絡故障。 應該沒問題。

要處理網絡問題,請使用CURLOPT_CONNECTTIMEOUT選項來定義一些秒。 它將等待給定的秒數以連接到目標主機。

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

並使用CURLOPT_TIMEOUT選項來定義允許卷曲進行特定操作的秒數。 如果目標服務器不釋放連接,這將很有幫助。

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM