2010-02-23 105 views
2

我需要以某種方式自動更新/解析幾個RSS訂閱源,並在訂閱源更新或儘可能接近時立即將它們放入MySQL數據庫。但是,我無法自動找出最好的方法 - 我在用戶運行腳本時發現了一些教程 - 但在這種情況下,所有這些都需要在後臺完成。 cron工作是否合適?如何自動解析RSS數據庫以存儲在MySQL數據庫中?

任何想法?任何意見非常感謝,謝謝。

回答

0

它只能做迴應某事 - 一個cron工作只是意味着「迴應它是一定的時間。」您必須決定哪些事件最適合您的特定情況。

假設您不控制RSS源的來源,通過cron定期執行它是有意義的。只要飼料更新或儘可能接近,就要讓它運行,你必須每秒輪詢一次,這會讓你非常不受歡迎。不要每小時檢查一次(除非Feed中包含提供不同檢查週期的信息)。

+0

嗯問題是它的高強度飼料 - 即它至少每3或4分鐘更新一次。任何其他想法? – Bronwyn

+0

然後檢查供稿是否包含說明您可以更頻繁地進行調查的數據,或者聯繫網站負責人並徵求權限。 – Quentin

+0

並使用cron作業來執行腳本的運行? – Bronwyn

0

如果你確實控制RSS源的來源,看看其他Observer pattern。如果不是,則檢查所述源進料支持PubSubHubbub

一個簡單的,開放的,服務器到服務器的基於Web的鉤發佈訂閱(發佈/訂閱)協議的一個擴展Atom和RSS。說出PubSubHubbub協議的各方(服務器)可以在他們感興趣的主題(feed URL)更新時獲得接近即時的通知(通過webhook回調)。

+0

不幸的是,它不支持PubSubHubbub協議 - 我在這裏用盡了想法。不知何故,我需要從不斷更新的Feed(這是一個緊急服務提要)獲取信息,並將其「緩存」到MySQL中。 – Bronwyn

1

您應該檢查出Zend_Feed_Reader
Zend_Feed_Reader提供HTTP條件GET支持
如果Feed已正確配置,則腳本只需下載並解析Feed即使已更改。

您不需要完整的Zend Framework。 Zend_Feed_Reader具有很少的依賴關係,因此可以單獨使用。