2017-12-17 5 views
0

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では、まだエラーが発生しています。

オンラインで見つかった同様の問題は、指数バックオフを使用することでしたが、このコードにそれらを実装する方法がわかりません。

必要に応じて、私のコードのより大きなサンプルを投稿することができます。

+0

すべての要求が個別に失敗すると仮定し、失敗した要求に対して指数バックオフを実装します。場合によっては、Googleが終了時に何らかの問題が発生したために500を返すだけの場合は、リクエストを再試行してください。 – visch

答えて

0

this guideを使用すると、コードのパフォーマンスを向上させることができます。

このドキュメントでは、アプリケーションのパフォーマンスを向上させるために使用できるテクニックについて説明します。 を使用している特定のAPIのドキュメントには、これらの一部の詳細についての類似のページがあります。

また、あなたのコード内のいくつかの不足しているリンクがある場合は、このPython Quickstart guideを使用してコードをチェックしてみてください。

このページの残りの部分で説明する手順を完了し、約 5分であなたは は、教室のAPIへのリクエストを行い、簡単なPythonコマンドラインアプリケーションを持っています。

関連する問題