2011-02-05 66 views
1

我想創建一個Django webapp,它通過tweepy.Stream()函數使用Twitter Streaming API。我很難將正確的實施概念化。tweepy與Django流媒體API集成

我想要的最簡單的功能是實時計算包含hashtag的推文數量。所以我會打開一個流,通過關鍵字過濾,每當一個新的推文通過連接我增加一個計數器。該計數器隨後會顯示在網頁上並通過AJAX或其他方式進行更新。

問題是,tweepy.Stream()函數必須連續運行並連接到Twitter(即點)。我如何讓這個流在Django應用程序的後臺運行,同時增加可以在(近)實時顯示的計數器?

在此先感謝!

回答

6

有多種方法可以做到這一點,但使用消息庫(celery)可能是最簡單的。

1)保持python進程運行tweepy。一旦發現一條有趣的消息,創建一個新的芹菜任務

2)在這個胡蘿蔔任務裏面,將數據保存到數據庫(計數器,推文,不管)。這個任務可以很好地運行django代碼(例如ORM)。

3)有一個常規的django應用程序顯示你的任務持續的結果。

作爲一項預防措施,在監督下運行tweepy進程可能是一個很好的理想(supervisord可能適合您的需求)。如果出現任何問題,它可以自動重新啓動。

+0

是的,這正是我所期待的。非常感謝您的快速回復。胡蘿蔔看起來停止被海帶取代。如果其他人正在搜索谷歌的教程那種做類似的事情,我發現this.http://ask.github.com/celery/tutorials/clickcounter.html – TheCrow 2011-02-05 21:24:50