Tweepy流媒体API落后

时间:2013-11-13 17:11:57

标签: python twitter tweepy

我有一个python脚本,它读取有关特定体育赛事的所有推文并将其输入数据库。虽然我在本周末运行它,但每次游戏中发生重大事件时脚本都会停止,我会收到错误。它说这是代码,但我不相信是这样的。我在Twitter的api网站上找到了这个:

“落后于

无法足够快地处理邮件的客户端将被断开连接。跟踪客户端是否落后的方法是将您收到的推文的时间戳与当前时间进行比较。如果时间戳之间的差异随着时间的推移而增加,那么客户端就不会像传递时那样快地处理推文。接收客户端落后的通知的另一种方法是在建立流连接时传递stall_warnings参数。“

我想知道这是否发生在我身上,以及实施解决方案的最佳方式。

1 个答案:

答案 0 :(得分:3)

当straming API创建永久连接时,Falling behind在技术上意味着推文在此连接中的放置速度比客户端消耗的速度快。

解决方案很简单,您必须更快地处理推文,这样可以优化您的环境。必须存在瓶颈/瓶颈,识别并妥善处理。例如,当数据无法按照所需的速度快速存储到磁盘时,数据库延迟可能是数据库延迟,此时数据库无法处理每秒足够的插入数,IO延迟;代码效率低下;高CPU负载;网络带宽限制等。

所有案件都没有银弹,但一些明显的步骤包括:

  • 按原样从Twitter数据接收存储,并在较低负载的窗口中进行后处理;
  • 部署具有多个推文消费者(处理器)和数据分片的集群;
  • 使用更快的磁盘/一些raid配置可以加速IO;
  • 推文查询优化,确保请求和处理尽可能少的推文;
  • 代码优化;
  • 迁移到带宽更高的数据中心;