Twython连接超时。如何重新正常启动

时间:2013-10-23 19:44:06

标签: python object twitter connection twython

我希望能够让我的twython应用程序长时间运行而无需用户交互。它只是打印出针对我的推文。该程序正在运行,但过了一段时间后,我收到以下错误:

HTTPSConnectionPool(host='api.twitter.com', port=443): Max retries exceeded with url: /1.1/statuses/mentions_timeline.json?count=20&since_id=392227122070056960 (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)

我使用的是REST API,而不是流媒体。 twython对象是使用:

创建的
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

然后我用以下内容检索提及

mentions = twitter.get_mentions_timeline(count=20,since_id=sinceID)

代码每10分钟左右重新检查一次,跟踪最新的since_id,因此只打印出新的推文。

问题:

1)错误是twython错误还是python网络库错误?

2)如果出现此错误,在不重新启动程序的情况下重新建立与twitter服务器的连接的正确方法是什么?我是否需要首先销毁twython对象然后重新创建它,然后重新验证服务器?在twython文档中,我只能提到在使用流API时关闭连接。

任何建议都非常感谢。

1 个答案:

答案 0 :(得分:0)

1)Twitter限制API请求。 REST API具有比Streaming API更严格的速率限制。以下是每次通话限制的详细列表: https://developer.twitter.com/en/docs/basics/rate-limiting

2)您无需重新建立连接。您所要做的就是等到超出限制时间限制(查看上面的链接)。您可以将请求分开,以便不会达到限制,也可以将数据本地存储在缓存中以检索上一个有效响应。