2010-02-09 35 views
1

我正在做我的單身漢項目,我試圖找出一個簡單的困境。Zend_Cache vs cronjob

這是一個足球俱樂部的網站。有一些信息會從國家足球協會的網站上獲取(主要是聯賽表和比賽歷史)。我試圖決定存儲這些提取數據的最佳方式。我在考慮兩種可能性:

1)我將設置一個cron作業,讓我們說每小時運行一次。它會調用一個腳本,它將從網站獲取聯盟表和所有其他數據,並將它們存儲在一個平面文件中。

2)我將使用Zend_Cache對象來做同樣的事情,除了數據將被存儲在緩存文件中。緩存也將每小時更新一次。

哪種方法更好?

回答

2

我認爲可以在找到答案爲什麼你想緩存該文件。是否通過僅經常更新緩存的方式在外部服務器上佔用最小的負載,還是因爲該文件需要很長時間才能下載或處理,所以保持網頁加載速度很快

如果只是尊重其他服務器,並且抓取/處理該頁面需要很少的時間,我只需要實現Zend_Cache。這很簡單,你不必擔心一個腳本下載頁面,然後另一個腳本加載下載的數據(加上cron作業)。

如果緩存也是需要的,因爲抓取/處理頁面很重要,我仍然會使用Zend_Cache;不過,我將緩存設置爲每2小時過期一次,並設置一個cron作業(或類似的),以便每小時手動更新緩存。當然,這會增加兩個腳本的複雜性(或者至少添加一個請求標誌來手動刷新緩存),但是如果cron作業失敗,那麼您仍然可以。

+0

這是因爲我想減少外部服務器上的負載。 – 2010-02-09 03:39:08

+0

你走了,只需使用Zend_Cache。 – 2010-02-09 18:05:36

1

那麼如果你選擇1,它會增加複雜性,因爲你也必須使用cron(而不是cron太複雜),然後你必須在使用它之前測試數據文件是否完整,一個臨時位置,他們已經下載並解析爲正確的格式。

如果使用兩個,它將消除大部分的1,除了現在緩存已死的請求之外,您必須等待下載/解析。

我會說1是更好的選擇,但2將更容易實現,並且不太容易出錯。這就是說它在cron腳本中實現的功能相當簡單,以防止我描述的負面因素。所以我可能會去1.