我正在尝试创建一个通过tweepy.Stream()函数利用Twitter Streaming API的Django Webapp。 我很难概念化正确的实现。
我想拥有的最简单的功能是实时计算包含主题标签的推文的数量。 因此,每当一条新的推文通过连接时,我都会打开一个流,并按关键字进行过滤,我会增加一个计数器。 然后,该计数器将显示在网页上,并使用AJAX或其他方式进行更新。
问题在于tweepy.Stream()函数必须连续运行并连接到twitter(这就是重点)。 在增加可以(近)实时显示的计数器时,如何在Django应用程序的后台运行此流?
提前致谢!
有多种方法可以做到这一点,但是使用消息传递库( celery )可能是最简单的。
1)保持python进程tweepy运行。 找到有趣的消息后,创建一个新的芹菜任务
2)在该胡萝卜任务内部,将数据持久保存到数据库中(计数器,tweet等)。 该任务可以很好地运行Django代码(例如ORM)。
3)有一个常规的django应用程序显示您的任务持续存在的结果。
作为预防措施,在监督下运行扭曲过程可能是一个理想的选择(supervisord可能适合您的需求)。 如果有任何问题,可以自动重新启动。