1

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

4

2 回答 2

2

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

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

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

于 2012-01-30T00:09:55.300 回答
2

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

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

Node.jsSocketIO的结合旨在解决这个问题,并且由于 twitter 实时查看器是一种常见情况,因此许多示例都在浮动 - streamie就是其中之一。

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

于 2012-01-30T06:03:03.950 回答