1

tweepyを使用して Twitter のハッシュ タグをリッスンするアプリを開発しています。アプリを Google App Engine にアップロードしましたが、以下のエラーが表示されます。

トレースバックの最後の行:

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 フェッチのデフォルトのタイムアウトを設定できます。デフォルトでは 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

リクエストに依存するjenkinsapiライブラリを使用して、ジェンキンCIサーバーと対話するGAEでシンプルなアプリを実行しています。私は 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('URL からの HTTP 応答を待っている間に期限が超過しました...

于 2015-03-04T08:25:49.213 に答える