2011-07-15 12 views
0

CURLを使用してリモートサーバーから情報を取得する場合、リモートサーバーがレスポンスを生成するのに平均15〜20秒かかります。 10MB。ソースの処理時間が長い場合のCURLのパフォーマンスの問題

問題は、CURLがレスポンスを取得するために永遠にかかることです。

CURLのパフォーマンスを向上させる方法はありますか?

今私が見つけた解決策は、サーバーに静的に生成されたファイルに新しいURLを返し、そのファイルをダウンロードさせることです。私は1つの要求でそれを行うことができるようにしたいと思います。

答えて

2

あなたは、いくつかのオプションがあります。

  1. はcronジョブを経由してCURLを経由してファイルをダウンロードし、それをローカルに保存します。そうすれば、どれくらい時間がかかっても問題ありません。
  2. サーバーが静的に生成されたコンテンツに新しいURLを返すことができる場合は、それを使用します。たぶんLocation:ヘッダーを介して、あなたのスクリプトにどこからそれを取得するかを指示します。リモートサーバー
  3. スピードアップ何とか
それは時間がかかると私は:)
+0

1 - CRON経由ではできないので、結果はすぐに画面に表示する必要があります(30秒以内) 2 - おそらくヘッダーの位置を使用するのが最善の賭けです、私はそれを試してみます 3 - 別のコメント、リモートサーバーの速度はOKです、それは応答がその時間がかかるWebサービスを照会しています。 – Pablius

+0

命題nb 2のために+1 –

+0

@Pablius:情報が常に最新でなければならない、またはウェブページが30秒以内に表示されなければならないということを意味しますか?後者の場合、cronジョブがどれだけ長く更新されるかは問題ではありません。ローカルに保存すると、Webページが即座に読むことができます。 –

0

何ですか?サーバーは応答を生成するのに15〜20秒かかると言いますが、Curlは時間がかかりますか?

私はあなたの心を吹きたくはありませんが、そのサーバーが速く応答するようになると、Curlは応答をより速く取得します。

+0

長い時間...何かが速い偽の要求でサーバを最初にpingするなら、それは応答を生成/キャッシュし始めてから15分以内にリクエストをキャッシュするようにします。 – Pablius

+0

はい、それについて何かを行うことはできませんが、カールがかかる理由です理由はWebサービスを照会することによって生成された応答は、それはだだ –

+0

ヘッダーの場所を使用してページを再リクエストする@Ryanの提案を試してみましょう。その結果をキャッシュすることはできません(5分以内に有効です)。できるだけ早く、要求が行われた直後に画面に表示する必要があります(最大30秒まで受付可能)。 BTWのリクエストは常に異なっているので、ユーザが先取りするように求めるものは予測できません – Pablius

関連する問題