目次
ディスカッションへの返信(解決策)
ホームページ バックエンド開発 PHPチュートリアル このコードでは常に 2 分程度で 504 プロキシ タイムアウト エラーが発生します。なぜですか?

このコードでは常に 2 分程度で 504 プロキシ タイムアウト エラーが発生します。なぜですか?

Jun 23, 2016 pm 02:09 PM

このコードでは、$fucknum が 1000 など比較的大きい場合、504 プロキシ タイムアウト エラーが発生し、プログラムはエラーが報告された後、停止したかのように実行を継続しません。このエラーは発生しません。 $fucknum の値が比較的小さいのですが、その理由は何ですか?アドバイスをお願いします

function autonewnewegg($arr){            $fucknum=intval($arr['fucknum']);  // # 获取抓取条数的整数值            $outime=$fucknum*2+100;            set_time_limit($outime);//设置脚本执行时间            $nextnum=20;//连续查找10次不存在则终止            $sn=$arr['sn'];                        $acl=explode("-",$sn);            $acl_1=preg_replace('/[^0-9]+/','',$acl[1]);        //二次            $a=$b=0;                                            //二次                        while($fucknum>0){                $arr1 = $arr2 = array();                if($acl[2]<1000&&$acl_1<100){                    $acl[2]=str_pad("$acl[2]",3,'0',STR_PAD_LEFT);                    $acl_1=str_pad("$acl_1",2,'0',STR_PAD_LEFT);                    $acl[1]="c".$acl_1;                    $arr_in=implode("-",$acl);                                $url=$GLOBALS['competitor'][1]['product'].$arr_in.'.htm';                    if($acl[2]==999){                        $acl_1=$acl_1+1;                        $acl[2]=001;                    }else {                        ++$acl[2];                    }                }elseif($acl[0]<=99){                    $acl[0]=str_pad("$acl[0]",2,'0',STR_PAD_LEFT);                    $arr_in=implode("-",$acl);                                        $acl[2]=001;                    $acl_1=01;                    ++$acl[0];                    $url=$GLOBALS['competitor'][1]['product'].$arr_in.'.htm';                }                $str = file_get_contents($url);                if(!$str){                    $fucknum--;                }else{                    $preg ='/href="http:\/\/www\.newegg\.com\.cn\/SubCategory\/(\d*)\.htm">/';                    $preg2 ='/<h1>(.*)<\/h1>/';                                        $str = iconv("gbk","UTF-8",$str);                    preg_match($preg,$str,$arr1);                    preg_match($preg2,$str,$arr2);                    if(empty($arr1) || empty($arr2)){                        $fucknum--;                    }else{                        $price = $this->ocr_newegg($url);                        if ($price == false||$price=='.'){                            $price = $this->ocr_newegg1($url);                        }                        if($price == false){                        }else{                            $autoarr=array('cid'=>$arr1[1],'name_newegg'=>$arr2[1],'price_newegg'=>$price,'sn_newegg'=>$arr_in);                            $this->addnew_newegg($autoarr);                        }                        $fucknum--;                    }                }            }            return true;        }
ログイン後にコピー


ディスカッションへの返信(解決策)

タイムアウトしたらどうすることもできません。
set_time_limit(0);
?

スクリプトがタイムアウトしないようにします: set_time_limit(0);

タイムアウトになった場合は、何もできません。
set_time_limit(0);
$outtime は $fucknum に基づいて動的に変更されます。
set_time_limit($outtime);// スクリプトの実行時間を設定します。

スクリプトをタイムアウトしないようにします: set_time_limit(0); 設定されていても、これが原因ではありません

レポートの理由は、おそらく 504 プロキシ タイムアウトです

は、クライアントからのアクセス要求を内部ネットワーク カードから受信し、同時に宛先 Web サイト サーバーに即座に転送されましたが、宛先 Web サイト サーバーは時間内に応答しませんでした。 3 秒後に 1 回再送信し、6 秒後に再度送信します。応答が受信されないため、ネットワーク カードはクライアントの HTTP/1.1 504 プロキシ タイムアウトに戻る必要があります。


レポートの理由: 504 Proxy Timeout はおそらく

外部ネットワーク カードは、内部ネットワーク カードからクライアントからのアクセス要求を受信した後、すぐに宛先 Web サイト サーバーに同時に転送しましたが、宛先 Web サイト サーバーは時間内に応答しませんでした。 3 秒後に 1 回再送信し、6 秒後に再度送信します。応答が受信されないため、ネットワーク カードはクライアントの HTTP/1.1 504 プロキシ タイムアウトに戻る必要があります。 file_get_contents Web サイトに制限があるためですか?


5 階の heyc1998 からの返信を引用:

報告の理由: 504 Proxy Timeout が考えられます
外部ネットワーク カードは、内部ネットワーク カードからクライアントからのアクセス要求を受信した後、すぐに宛先に転送します。同時に Web サイト サーバーにアクセスしましたが、宛先 Web サイト サーバーが時間内に応答しませんでした。 3 秒後に 1 回再送信し、6 秒後に再度送信します。応答が受信されないため、ネットワーク カードはクライアントの HTTP/1.1 504 プロキシ タイムアウトに戻る必要があります。
file_get_con を使用する必要がありますか...

この現象がまだ発生するかどうかを確認するために、各ループの後に長めにスリープすることができます。 ~ リモート サーバーに問題があるはずです

6 日の helloqhq の返信からの引用フロア:

5 階の heyc1998 からの返信の引用:

報告の理由: 504 プロキシ タイムアウトはおそらく
外部ネットワーク カードは、内部ネットワーク カードからクライアントからのアクセス要求を受信した後、すぐにそれを宛先 Web サイト サーバーに同時に応答しましたが、宛先 Web サイト サーバーは時間内に応答しませんでした。 3 秒後に 1 回再送信し、6 秒後に再度送信します。応答が受信されないため、ネットワーク カードはクライアント HTTP/1.1 504 プロキシ タイムアウト エラーを報告した後にループを続行する必要があります。実行は続行されますが、エラーを報告した後にプログラムに問題が発生しているようです。while ループを終了できず、true を返しません。

6 階の helloqhq からの返信の引用:

5 階の heyc1998 からの返信の引用:

報告の理由: 504 プロキシ タイムアウトは、おそらく
外部ネットワーク カードがクライアントからのアクセス要求を受信した後です。内部ネットワーク カードは同時に、宛先 Web サイト サーバーに即座に転送されましたが、宛先 Web サイト サーバーは時間内に応答しませんでした。 3 秒後に 1 回再送信し、6 秒後に再度送信します。応答が受信されないため、ネットワーク カードはクライアントに HTTP/1.1 504 Proxy Ti... つまり、このエラーには戻り値が返されます。この戻り値はブロックされますか?

6 階の helloqhq からの返信の引用:

5 階の heyc1998 からの返信の引用:

報告の理由: 504 プロキシ タイムアウトは、おそらく
外部ネットワーク カードがクライアントからのアクセス要求を受信した後です。内部ネットワーク カードは同時に、宛先 Web サイト サーバーに即座に転送されましたが、宛先 Web サイト サーバーは時間内に応答しませんでした。 3 秒後に 1 回再送信し、6 秒後に再度再送信します。応答が受信されないため、内部ネットワーク カードはクライアント HTTP/1.1 504 プロキシ ティに戻る必要があります。2 つのデッド投稿があります。お気軽に返信してください。ポイントを付与します。
http://topic.csdn.net/u/20101128/19/0fedb777-1901-4460-945b-ddc2a8787ba0.html
http://topic.csdn.net/u/20101209/17/438c616b- 3132-41bc -a329-86f84e46a72c.html

バックエンドが終了する前にフロント デスクがタイムアウトします

ホストはそれを解決しましたか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles