2009-10-01 17 views
1

我終於有了第二個觀察流,守護進程和cron 任務以及圍繞它們構建的所有純淨的寶石!但我不清楚 如何/何時使用這些東西。流媒體,守護進程,Cronjobs,你如何使用它們? (在Ruby中)

我有幾個問題:

1)如果我想有一個網站,呆不斷更新,實時的,與我的Facebook朋友的活動源,最高到了分鐘亞馬遜書評我最喜歡的書籍和我的推特Feed,我是否會使用Daemon gem,用於流式傳輸內容的ruby-yali gem以及每當寶石(可能會說,每隔3-10秒檢查一次這些網站)如果我正在查找的內容已更改?這是如何工作的?或者它通常/最好是以不同方式完成的? (1)處理器密集度太高了嗎?考慮到您希望實時更新的網站沒有流式API,是否有更好的方式來處理實況內容?我正在考慮每隔幾秒鐘在一個單獨的小型ruby應用程序(使用守護進程和cronjobs)發送請求,獲取json/xml結果,使用nokogiri刪除我不需要的東西,然後通過評論/書籍/帖子/等等的小列表,構建改變的內容,以及使用Juggernaut或其他方式將這些更改推送到某些Rails應用程序。這會起作用嗎?

我想這一切都歸結到一個問題:

如何做一些網站工作的最新內容的實時流?你怎麼做呢? ...所以如果有人在我的網站上,他們可以實時看到新消息或剛出來的新書嗎?

期待您的回答, 蘭斯

回答

1

那麼首先,如果一個網站,不提供API,那麼它是一個強有力的跡象表明,這是不合法的分析和提取他們的數據,但是你會更好地檢查他們的使用條款和隱私政策。我個人並不知道叫做「Streaming API」,但是假設他們有一個API,你仍然需要將它提供的結果(xml,json,...)解析出來,然後解析它們,將它們呈現給用戶。該戰略將根據您的應用程序類型而異:

  1. 桌面應用:那麼你只可以直接提取數據,分析它,並將其提供給用戶,許多應用程序是這樣的,就像的Twhirl。
  2. Web應用程序:那麼你需要減少提取數據的時間。通常你會從API中提取數據並存儲它。但是,存儲數據有點棘手!你不想讓你的數據庫通過極端的拉查詢來鎖定應用程序,它會獲取數據。一種方法是使用推送方法;在這種情況下按照選項2獲取數據,然後推送給用戶。如果您想要聊天等即時更新,則可以查看orbited。如果可以將數據保存到某種用戶和關注者的「收件箱」中,那麼我可以說最簡單的方法就是使用IMAP將更新發送到用戶收件箱。
+0

有關使用條款和隱私政策的好處。我更想知道這是否可用(足夠快,不會耗費太多資源或花費太多時間來持續處理這些東西,每隔幾秒鐘等等)。現在不對聊天感興趣,更多的是定期(秒)間隔的頁面抓取。感謝您的提示。 – 2009-10-01 19:17:03