2011-07-18 32 views
4

我已經做了大量的閱讀,我不太清楚究竟是什麼正確的方式去做這件事。如何在執行很多curl請求的同時練習良好的道德規範,在php

我正在訪問提供我在我的網站上使用的信息的網站api。平均而言,我將提交超過400個不同的API請求,這意味着超過400個curl請求。什麼是使我的代碼暫停一段時間然後繼續的正確方法。該網站不會限制點擊量,所以我不會被禁止只是一次拉出所有的東西,但是當10,000個像我這樣的人做同樣的事情時,我不想成爲那個服務器。我試圖做的是暫停我的代碼並禮貌地使用他們提供的服務。

什麼是暫停php執行資源消耗的最佳方法?

每個等待週期最有禮貌的請求量是多少?

每個週期最有禮貌的等待數量是多少?

有了所有這些問題,我也希望儘可能快地獲得信息,同時試圖留在上述問題。

sample eve central API response

預先感謝您的時間和耐心。

+0

這是一個很好的問題,但它很主觀。這取決於服務器有多少資源,有多少客戶,每個請求有多少帶寬/處理,一次同時發送多少個同時(vs排隊)請求等等。如果沒有更多的數據,那麼是沒有答案的,儘管你正在考慮這樣的事情是非常好的。 –

+0

@Chris我不知道有多少資源可用,因爲我正在與godaddy共享主機計劃。除此之外,我不知道使用了多少帶寬/處理請求。響應是少量的XML,可能是10到15行。我無法確定該網站有多少客戶,但我必須承擔很多,因爲它是eve-central.com,這是MMO EVE Online最古老的市場數據網站。我明白給你一個確切的答案,你需要更多的信息。但我認爲可以通過做出一些假設來達成公平的答案。 – Wes

+0

@Chris我已更新OP以獲得示例響應的鏈接。 – Wes

回答

3

這是一個想法:你問過嗎?如果API在處理高負載時遇到問題,它們通常會包含一個限制條件。如果沒有,我建議給服務提供商發電子郵件,解釋你想要做什麼,並詢問他們認爲合理的負載。雖然他們的服務器很有可能可以處理任何你可能想要給它的負載,這就是他們沒有指定的原因。

如果你想要服務提供商做好事,不要只是猜想他們想要的。詢問,然後你就會知道你能走多遠,而不會讓那些構建API的人感到困擾。

對於暫停的實際機制,我使用PHP的usleep alex建議(但已經刪除)的方法。

+0

我想這是回答這個問題的最好方法。我已在前夕發送電子郵件給開發者,並將發佈我在這裏得到的響應。 – Wes