Google APIのPythonで複数のことを一度にやろうとすると、いくつかの機能に対して「内部エラー - 500」が発生します。場合によっては、同じコードを実行すると、エラーが異なる行に表示されます。Google Classroom APIの内部エラー500
これは私が使用しているメソッドのコードです:
batch1 = service.new_batch_http_request(callback=callback)
batch2 = service.new_batch_http_request(callback=callback)
batch3 = service.new_batch_http_request(callback=callback)
batch1.add(service.courses().create(body=arCourse))
batch1.add(service.courses().create(body=ciCourse))
batch1.add(service.courses().create(body=dtCourse))
batch1.add(service.courses().create(body=drCourse))
batch1.add(service.courses().create(body=enCourse))
batch1.execute(http=http)
time.sleep(1)
batch2.add(service.courses().create(body=geCourse))
batch2.add(service.courses().create(body=hiCourse))
batch2.add(service.courses().create(body=icCourse))
batch2.add(service.courses().create(body=laCourse))
batch2.add(service.courses().create(body=maCourse))
batch2.execute(http=http)
time.sleep(1)
batch3.add(service.courses().create(body=muCourse))
batch3.add(service.courses().create(body=peCourse))
batch3.add(service.courses().create(body=reCourse))
batch3.add(service.courses().create(body=scCourse))
batch3.execute(http=http)
私はバッチに分割し、第二の制限ユーザーあたり5クエリの上に行く避けるために、バッチ間で「スリープ」を含めていますGoogle APIでは、まだエラーが発生しています。
オンラインで見つかった同様の問題は、指数バックオフを使用することでしたが、このコードにそれらを実装する方法がわかりません。
必要に応じて、私のコードのより大きなサンプルを投稿することができます。
すべての要求が個別に失敗すると仮定し、失敗した要求に対して指数バックオフを実装します。場合によっては、Googleが終了時に何らかの問題が発生したために500を返すだけの場合は、リクエストを再試行してください。 – visch