2009-10-13 53 views
1

我有一個社交網站正在開始獲得一些動力,並且擁有不斷擴大的用戶羣。我們目前允許用戶導入他們的博客,flickr和twitter feeds。我們使用php庫simplepie來讀取提要,然後檢查數據庫以確保我們沒有重複條目,查找每個找到的提要項目。如果Feed項目是新的,我們將它存儲在數據庫中。 Feed更新每個都運行在它們自己的cron上。所以我們有一個用於twitter feeds,一個用於flickr,另一個用於博客。尋找在Cron上構建Feed閱讀器/聚合器的最佳實踐

我注意到網站變得呆滯,而且很有可能在cron任務運行時。必須有更好的方法來做到這一點。有什麼想法嗎?

回答

2

總的想法很好,我不會改變這一點。

如果您確定它是導致性能問題的cron任務,那麼我會在單獨的服務器上運行它們。有一個'批量服務器'來運行這些與前端Web服務器分開的作業是非常普遍的解決方案。

但是,如果不能絕對確定問題所在,我不會着手進行任何改進以提高性能。據我所知,你的數據庫模式可能會非常低效。

+0

謝謝。我想可能是因爲長時間(20秒)的超時(通過捲髮)來遠程讀取數據。我認爲,當它在多個Feed上掛斷時,會導致網絡延遲。不確定,但減少超時似乎有很大幫助。謝謝你的提示。 – phirschybar 2009-10-15 18:05:55

1

本詹姆斯在那裏提供了一個很好的觀點,你需要100%確定cron的原因。我不會繼續爭取新的服務器,直到你無法優化你已有的東西。

你會遇到什麼類型的呆滯?

  1. 網絡延遲?
  2. 數據庫延遲?
  3. 一般頁面加載響應性較差(前端代碼?)
  4. 什麼都可以?等等;

做一個分析,然後知道在哪裏進行優化,一旦你有所有的變量。