2012-05-18 22 views
0

我們的網站允許用戶上傳圖片,然後在twitter上分享,或者在Facebook上與他們分享。有一個熱門頁面,根據Twitter的提及和臉書喜歡的特定頁面的總數,排名前X的圖片。基於Twitter的趨勢提及和Facebook喜歡

目前我可以看到我們可以實現的唯一方法是通過對每個圖像進行2次API調用(至少)來獲取每個社交網站的計數,然後計算總數以最終訂購圖像首先是最「熱門」的。我不認爲這是應該的,因爲如果我們有,比如3000張圖像,可能需要很長時間才能完成。

我不知道如何實現我們想要的(如果它甚至可能),這就是爲什麼我現在可以想到的唯一解決方案是要麼有我們自己的「喜歡」系統,要麼得到計數每小時一次並創建一種緩存(但這仍然意味着每個小時都會有很多API調用)。

回答

2

也許您可以根據服務器上的視圖數量對圖像進行排名。如果您希望可以拍攝10%的最佳觀看圖像,並根據提及/喜好進行排名(以及)。這需要90%以下的API調用,但給出了令人滿意的結果(我認爲)。

+0

確實感謝一個好主意。我們想到了使用視圖的數量,但沒有考慮如何對它們進行API調用。我仍然在等待其他建議。乾杯。 – Nicolas

0

幾點建議:

  1. 將其限制在一定的時間內(上傳在過去的一週例如圖像)
  2. 緩存的時間長度的數據,只做每每隔一小時圖像API調用左右(甚至可能更長)
  3. 即使人們不在此頁面上,任何其他時間將圖像加載到網站上的其他位置,如果還沒有在過去一小時。這將錯開一頁加載的請求數量。
  4. 限制一個頁面加載中的請求數量。這意味着有人可能會加載一個頁面,它只會發送100個請求(對於最長時間內未請求的100個圖像),其餘圖像將使用它們之前的值(即a緩存值)。這個完全取決於您的網站的活躍程度,您可能還需要每天/每週查看所有這些信息,以確保緩存不會過分過時。
+0

感謝您的意見,並且我想到了您在此處提出的大部分建議,但網站的意圖是引用「大」,即使對所有這些(智能)緩存優化,我認爲它仍然意味着像「24 * 3000 = 72000'每服務每天(如果我保留300圖像的例子)。不確定Facebook和Twitter會允許來自單個網站的多少電話。我認爲我們正在考慮意見。 – Nicolas