私はGoogle Vision APIを使用して、Pythonを使用していくつかのドキュメントでOCRタスクを実行してきました。Google Vision APIからHttp Error Code 429を回避するにはどうすればよいですか?
HTTPエラーコード429の受信が始まるまで、完全に動作し始めます。これは、短時間で多くのリクエストを処理していることを意味します。次に、リクエストごとに睡眠をとることに決めました。そのうち、Http Error Code 429の数が増えるにつれて時間が長くなりました。ただし、しばらくすると、エラーメッセージが表示され続けます。メッセージが到着し続けるので、スリープ時間は、それが眠っている間に長くなり、接続が失われるまで、増加し続けます。
このようなエラーメッセージが何度も連続して受信された場合、すぐに処理を終了してもう一度開始すると、リクエストは最初の試行で再び動作します。
言い換えれば、私が眠っている時間に関係なく、私はある時点でそのようなメッセージを受信し始め、それを再び動作させる唯一の方法はプロセスを再起動することです(全く感知しません)。
プロセスを再起動せずにこのようなエラーメッセージが表示されないようにするにはどうすればよいですか?誰でも助けてくれますか?
ありがとうございます!
編集:
これはリクエスト(その一部)のコードです。
from apiclient import discovery
from oauth2client.client import GoogleCredentials
# The other imports are omitted
DISCOVERY_URL = 'https://{api}.googleapis.com/$discovery/rest?version={apiVersion}' # noqa
credentials = GoogleCredentials.get_application_default()
self.vision = discovery.build(
'vision', 'v1', credentials=credentials,
discoveryServiceUrl=DISCOVERY_URL)
batch_request = []
for image in images:
batch_request.append({
'image': {
'content': base64.b64encode(image).decode('UTF-8')
},
'features': [{
'type': 'TEXT_DETECTION',
}]
})
request = self.vision.images().annotate(
body={'requests': batch_request})
'Retry-After'ヘッダが戻ってくるので、いつ次のリクエストを行うのか分かりますか? – jonrsharpe
@jonrsharpeあなたの迅速な答えに感謝します。私はヘッダー情報を取得しようとしましたが、要求は完全に私が使用しているAPIからメソッド内で行われているようです。したがって、エラーが発生した場合には、応答とヘッダーにアクセスすることはできません。 APIは単に例外(この場合はHttpError)をスローします。残念ながら、私は例外メッセージの中で何かを見つけることができませんでした。これは、 リクエスト= self.vision.images()。annotate(body = {'requests':batch_request}) –
あなたが使っているライブラリは何ですか? 'urllib2'の' HttpError'に 'info'、' message'、 'reason'などが含まれています。 –