ホームページ >バックエンド開発 >PHPチュートリアル >さえのカール限界は突破できるのか?
さえのカール限界は突破できるのか?
まず私の状況について話させてください。
外部 Web サービスにカールし、データを送信し、処理して、データを返します。
私は以前にアメリカのスペースと香港のスペースを利用したことがありますが、常に不満を感じており、国内のさまざまな地域への迅速なアクセスのニーズを満たすことができません。
それで今は sae で実行していますが、sae には多くの制限があります。たとえば、curl の制限は次のとおりです。
connect_timeout 5 秒
send_timeout 15 秒
read_timeout 20 秒
Catch Get ファイル サイズ 8MB
ヘッダーを無効にします。これらのヘッダーはユーザーが変更できません Content-Length、Host、Vary、Via、X-Forwarded-For、FetchUrl、AccessKey、Timestamp、Signature、AllowTruncated、ConnectTimeout、SendTimeout、 ReadTimeout
現在、最初の制限が制限されており、後続の制限は影響しません。
私のcurlアプリケーションが頻繁に502/504エラープロンプトを返すのは、まさにconnect_timeoutの5秒制限のためです。
このエラー率は約 3% です。つまり、100 回実行すると 3 回エラーが発生します。その後、curl の URL を https から http に変更しました。これにより、エラーの可能性が大幅に減少しました。 、それでもはい、テストは約1%です。
私はまだ結果に満足していません。なぜなら、私のcurlプログラムは他の場所(国内の3つのコンピュータ室でテスト)でエラーなく実行されているからです。
もちろんsaeにも提案し、有料ユーザーへのアップグレードもお願いしましたが、返答はありませんでした。
唯一の管理者は私にcurlのURLを尋ね、これが当てはまるかどうかを確認するためにテストするマシンを見つけるように頼みました。
なぜサエの木で首を吊るのかと疑問に思う人もいるかもしれません。
正直に言うと、sae について私が気に入っている唯一の利点は、5 回線のコンピューター室であることと、国のほとんどの地域でのユーザーのアクセス速度が非常に優れていることです。それに、開発者認定を申請するなら、毎月のクラウド Bean で十分です。
現在 3 つのオプションがあるようです:
1. sae に提案を続けて制限パラメータを変更してもらいます
2. コードを最適化しますか?
3 を最適化する方法が本当にわかりません。これは私が望む最終結果ではありません。
私のカールコードは次のようなものです:
#POST方法<br /> $curl = curl_init($url);<br /> curl_setopt( $curl, CURLOPT_POST, 1 );<br /> curl_setopt( $curl, CURLOPT_POSTFIELDS, $data );<br /> curl_setopt( $curl, CURLOPT_HEADER, 0 );<br /> curl_setopt( $curl, CURLOPT_RETURNTRANSFER , 1 );<br /> $response = curl_exec($curl);<br /><br /> #GET方法<br /> $curl = curl_init($url);<br /> curl_setopt( $curl, CURLOPT_GET, 1 );<br /> curl_setopt( $curl, CURLOPT_GETFIELDS);<br /> curl_setopt( $curl, CURLOPT_HEADER, 0 ); <br /> curl_setopt( $curl, CURLOPT_RETURNTRANSFER , 1 );<br /> $response = curl_exec($curl);