我正在使用tweetstream
gem连接到twitter API,如here所示。它工作正常,但当我停止并重新启动流时,我正在改变我处理流的方式,大约5次重启后超过2小时左右,流停止给我更新,on_reconnect
事件不断发生每隔30秒左右。
我认为这是因为这会触发速率限制,或者因为先前的连接在启动新连接之前没有被杀死。有没有正确的方法来做到这一点?
答案 0 :(得分:2)
我不确定问题的原因,但这就是我所做的:
更新库(包更新)。关于github问题的讨论似乎意味着底层的EventMachine gem可能有一个导致连接问题的错误,这在最新版本中得到了修复。
确保您的系统时间切合实际。至少一次我的系统时间没有与互联网时钟同步,距离实时超过30分钟,我的请求令牌被拒绝为无效(过期或未来签名)。 / p>
将流阅读器包裹在Daemon中。为守护程序提供{:monitor => true}
选项,以便在作业死亡时重新启动作业。这在我的服务器上每周发生几次超时错误(我猜测API端服务中断,或者我自己的互联网连接漏掉了)。这更像是一个创可贴,因为它本来不应该真的死掉,但它把这个问题推到了我的优先级列表上,我目前并不担心它。