1

我正在开发一个应用程序来使用tweepy监听 twitter 哈希标签。我已将我的应用程序上传到 Google App Engine,但它给了我以下错误。

Traceback 的最后一行:

File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/gae_override/httplib.py", line 524, in getresponse
    raise HTTPException(str(e))
HTTPException: Deadline exceeded while waiting for HTTP response from URL: https://stream.twitter.com/1.1/statuses/filter.json?delimited=length

我怎么能解决这个问题?

4

2 回答 2

3

您可以为 url fetch 设置默认超时,我相信它默认设置为 5 秒。该端点调用可能需要更长的时间。也许30秒?

urlfetch.fetch(url=url, method=urlfetch.GET, deadline=30)

每个文档最多可以达到 60 个:https ://cloud.google.com/appengine/docs/python/urlfetch/#Python_Fetching_URLs_in_Python

于 2014-10-02T15:55:27.303 回答
0

我在 GAE 上运行一个简单的应用程序,它与 jenkins CI 服务器交互,使用依赖于请求的 jenkinsapi 库。我在我的应用程序中同时发送 jenkinsapi 和请求,GAE 不支持请求,尽管它存在于我从中获取它的 Google Cloud SDK 中。jenkinsapi 向服务器发送大量请求,我经常收到

File "/base/data/home/apps/s~jenkins-watcher/v0-1.382631715892564425/libs/requests-2.3.0-py2.7.egg/requests/adapters.py", line 375, in send
    raise ConnectionError(e, request=request)
    ConnectionError: HTTPConnectionPool(host='XXXXXXX', port=8080):
    Max retries exceeded with url: XXXXXX
    (Caused by <class 'gae_override.httplib.HTTPException'>:
    Deadline exceeded while waiting for HTTP response from URL: XXXXXXXX

事实证明,重试次数为 0,超时是一些非常低的默认值。增加这两个数字,我不得不修补库,这有帮助,我不再看到这个问题了。

实际上,它仍然会发生,但是:

连接被 'HTTPException('Deadline exceeded while waiting for HTTP response from URL ...

于 2015-03-04T08:25:49.213 回答