2011-07-18 6 views
4

私はこれについてかなりの量の読書をしており、これについて正しい正しい方法が何であるかはわかりません。PHPで多くのカール要求を実行しながら良い倫理を実践する方法

私は自分のサイトで使用している情報を提供するウェブサイトAPIにアクセスしています。私は平均して400以上の異なるAPIリクエストを作成し、400以上のカールリクエストを意味します。私のコードを長時間ポーズしてから、続けていくことが適切な方法です。このサイトはヒット数を制限しないので、すべてのものを一度に取り出すことは禁止されませんが、私のような10,000人が同じことをすると、そのサーバーになりたくありません。私がしようとしているのは、コードを一時停止し、提供しているサービスを丁寧に使用することです。

リソース消費量を念頭に置いて、PHPの実行を一時停止する最も良い方法は何ですか?

ウェイトサイクルごとに最も丁寧なリクエストは何ですか?

1サイクルあたり最も丁寧な待機時間はどれくらいですか?

これらの質問のすべてで、私は上記の質問にとどまることを試みながら、できるだけ早く情報を入手したいと思います。

sample eve central API response

あなたの時間と忍耐のために事前にありがとうございます。

+0

これは良い質問ですが、それは非常に主観的です。これは、サーバーのリソース量、存在するクライアント数、要求ごとの帯域幅/処理量、一度に実行する同時(対キュー)要求の数などによって異なります。あなたはそのようなことを考えていることはとても良いことですが、答えはありません。 –

+0

@Chris私はgodaddyとの共有ホストプランに入っているので、どれだけのリソースが利用可能かわかりません。これに加えて、どのくらいの帯域幅/処理要求が使用されているのかわかりません。応答はおそらく10から15行の少量のXMLです。サイトのクライアント数を判断する方法はありませんが、MMO EVE Onlineで最も古い市場データサイトであるeve-central.comのように多くのことを想定しなければなりません。私はあなたがより多くの情報を必要とする正確な答えを与えることを理解します。しかし、私は、公平な答えがいくつかの前提を立てて到達できると思います。 – Wes

+0

@Chrisサンプルレスポンスへのリンクを持つようにOPを更新しました。 – Wes

答えて

3

ここに考えがあります:あなたは尋ねましたか?高負荷を処理する際にAPIに問題がある場合は、通常、その条件に制限があります。そうでない場合は、サービスプロバイダーに電子メールを送り、あなたがしたいことを説明し、合理的な負荷と思われるものを尋ねることをお勧めします。彼らのサーバーは、あなたが合理的にそれを与えたい負荷を処理する能力がかなりある可能性がありますが、それは指定しない理由です。

サービスプロバイダーがうまくやりたいのであれば、彼らが望むと思っているだけではありません。尋ねると、APIを構築した人たちを怒らせることなく、どれだけ遠くまで行くことができるかを正確に知ることができます。

実際の一時停止の仕組みについては、PHPのusleepの提案されている(しかし削除されている)メソッドalexを使用したいと思います。

+0

これはこの質問に答える最善の方法だと思います。私は中心部の開発者に電子メールを送ってきました。 – Wes

関連する問題