0
我正在實施Klout API與我一直在工作的Web應用程序。隨着時間的推移擴大有限的API請求大批請求
Klout允許你做10次/秒和10,000次/天。
每個用戶帳戶都可以查看N個其他用戶帳戶及其Klout分數。
收集此信息的最佳方法是定期從Klout API請求分數作爲後臺進程並將這些結果存儲在數據庫中?
如果我這樣做,假設我們有10個用戶有30個其他用戶的Klout評分他們想要查看。
在日常的後臺過程中,我們還要說我們會瀏覽10個用戶中的每個用戶,並查看他們30個用戶的Klout分數。
這將在整個過程中最多300次ping Klout的API(但是,您可以包含多達5個用戶來查看每個請求的分數 - 因此請求數量可減少到60)。
爲了避免每秒10個請求的上限,我應該在每個請求之間睡眠大約10秒的過程嗎?這是避免任何API錯誤的最佳方法嗎?
的僞例:
$maxUserPerRequest = 5;
foreach ($users as $user){
$follows = getKloutFollows($user); // list of klout scores to look up per user
$minimize = 0; // allow to minimize total requests by 5 users per req.
$batch = array() // array of 5 users to request
foreach($follows as $follow){
$batch[] = $follow;
// query 5 users at a time
if ($maxUserPerRequest % $minimize==0){
$kloutAPI->getScore($batch); // storing results
$batch = array();
sleep(10); // avoid overloading API requests
}
$minimize++;
}
}
其實7天不是嗎? ''您只能在服務器,緩存或數據庫上保留7天的Klout數據副本。「' – mellamokb
因此,如果我在7天內運行此過程,我會好嗎? – Atticus
@mellamokb你是對的。我傾向於根據工作日來思考。 – harmophone