Google App Engineでcronジョブを1ヶ月以上問題なく実行しています。この仕事はさまざまなことを行います.1つは、urllib2を使ってRedditからのjsonレスポンスを取得する呼び出しを行う方法と、他のいくつかのサイトです。約2週間前、私はRedditを呼び出すときにエラーを見始めましたが、他のサイトを呼び出すときにエラーはありませんでした。私が受け取っているエラーはHTTPエラー429です。Google App EngineからReddit APIを呼び出すときのエラー429
Google App Engine以外で同じコードを実行しようとしましたが、問題はありません。私はurlFetchを使ってみましたが、同じエラーを受け取ります。
engine's interactive shellアプリを使用すると、次のコードでエラーが表示されます。
import urllib2
data = urllib2.urlopen('http://www.reddit.com/r/Music/.json', timeout=60)
編集:それがいつも私にとっては失敗し、誰かではないのか分かりません。これは私が受け取るエラーです:
>>> import urllib2
>>> data = urllib2.urlopen('http://www.reddit.com/r/Music/.json', timeout=60)
Traceback (most recent call last):
File "/base/data/home/apps/s~shell-27/1.356011914885973647/shell.py", line 267, in get
exec compiled in statement_module.__dict__
File "<string>", line 1, in <module>
File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 400, in open
response = meth(req, response)
File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 513, in http_response
'http', request, response, code, msg, hdrs)
File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 438, in error
return self._call_chain(*args)
File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 372, in _call_chain
result = func(*args)
File "/base/python27_runtime/python27_dist/lib/python2.7/urllib2.py", line 521, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 429: Unknown
問題なくアプリエンジンの外で実行されている同様のコード:
print urllib2.urlopen('http://www.reddit.com/r/Music/.json').read()
最初は、私はそれが最初に働いていたので、それがタイムアウトの問題としなければならなかったと思いましたしかし、タイムアウトエラーではなく奇妙なHttpErrorコードがあるので、わかりません。 アイデア
あなたが提供したインタラクティブシェルとコードを使用すると、私にとっては効果的です。 – cheeken
これは、リクエストが多すぎるということです。プログラマとしては何もできません。これらのエラーを回避するには、一般にリクエスト間にスリープ状態を設定します。 http://tools.ietf.org/html/draft-nottingham-http-new-status-02#page-4 –
@ user947240:shadyabhiさんのアドバイスに従ってください。 – RanRag