2011-02-05 67 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