1

我正在尝试通过 tweepy.Stream() 函数创建一个使用 Twitter 流 API 的 Django webapp。我很难概念化正确的实施。

我想要的最简单的功能是实时计算包含主题标签的推文数量。所以我会打开一个流,按关键字过滤,每次新推文通过连接时,我都会增加一个计数器。然后该计数器显示在网页上并使用 AJAX 或其他方式进行更新。

问题是 tweepy.Stream() 函数必须连续运行并连接到 twitter(这就是重点)。如何让这个流在 Django 应用程序的后台运行,同时增加可以(近)实时显示的计数器?

提前致谢!

4

1 回答 1

6

有多种方法可以做到这一点,但使用消息传递库(celery)可能是最简单的。

1)保持python进程运行tweepy。找到有趣的消息后,创建一个新的 celery 任务

2)在这个胡萝卜任务中,将数据保存到数据库(计数器、推文等)。这个任务可以很好地运行 django 代码(例如 ORM)。

3)有一个常规的 django 应用程序显示您的任务持续存在的结果。

作为预防措施,在监督下运行 tweepy 进程可能是一个很好的理想选择(supervisord 可能适合您的需要)。如果出现任何问题,它可以自动重新启动。

于 2011-02-05T20:55:47.763 回答