【问题标题】:Twython connection timeout. How to re-start properlyTwython 连接超时。如何正确重启
【发布时间】:2018-01-23 19:16:34
【问题描述】:

我希望能够让我的 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 时关闭连接的提及。

非常感谢任何建议。

【问题讨论】:

    标签: python object twitter connection twython


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多