监控Web服务器上的Twitter流

时间:2012-01-29 23:59:09

标签: django twitter tweepy

我使用Tweepy编写了一个程序,我可以在家用计算机上运行以监控Twitter流。 Tweepy这样做的方法基本上是让一个while(true)循环始终运行。现在我要做的是将这个程序链接到我的Django应用程序。我可以这样做的一种方法是将Twitter程序保留在本地计算机上,并在收到消息时更新服务器的数据库。但是,我想知道我需要做什么才能在我的服务器后台运行Twitter程序。我正在使用Django。

2 个答案:

答案 0 :(得分:2)

您可以使用Celery这是一个可以在后台执行任务的任务队列(即在请求/响应周期之外)。它还与django集成django-celery

您可以将其设置为执行定期任务,即使用tweetpy每5分钟检查一次Twitter流并将结果保存到数据库。或者,您可以设置一个触发操作的任务,即当用户点击webapp上的某些内容时,启动后台任务来抓取twitter。

如果您不想遇到这种麻烦,可以选择使用Cron每隔X分钟执行一次操作,或者使用简化的队列应用程序。也就是说,Celery经过了充分的测试和可靠,可能值得付出额外的努力

答案 1 :(得分:2)

正如您在评论中发现的那样,芹菜并不理想 - 您需要另一个长时间运行的流程来监控现有的长期运行流程(您的客户)。

理想情况下,您需要一个始终打开的套接字(如客户端中的无限循环);因此,只要有数据,您就可以在网页上获得Twitter实时的“实时”视图。

Node.jsSocketIO相结合旨在解决这个问题,因为推特实时查看器是一个常见的案例,许多例子都在浮动 - streamie就是其中之一。

该组合为您提供了一个javascript客户端,可根据即将到来的数据自动更新;不需要刷新,ajax轮询,cron等。