ここでは、コースに学生を追加するスクリプト(Google Classroom API)を作成しました。Pythonでは、バッチ処理されたHTTP要求に対してリクエストごとに '指数バックオフ'を使用できますか?
students = getStudents('Year10', '10A') # VAR
for student in students:
newStudent = {
# Student Identifier
'userId': student
}
batch1_1.add(service.courses().students().create(courseId=arCourseId, body=newStudent))
batch1_1.add(service.courses().students().create(courseId=ciCourseId, body=newStudent))
batch1_1.add(service.courses().students().create(courseId=dtCourseId, body=newStudent))
batch1_1.add(service.courses().students().create(courseId=drCourseId, body=newStudent))
batch1_1.add(service.courses().students().create(courseId=enCourseId, body=newStudent))
batch1_2.add(service.courses().students().create(courseId=geCourseId, body=newStudent))
batch1_2.add(service.courses().students().create(courseId=hiCourseId, body=newStudent))
batch1_2.add(service.courses().students().create(courseId=icCourseId, body=newStudent))
batch1_2.add(service.courses().students().create(courseId=laCourseId, body=newStudent))
batch1_2.add(service.courses().students().create(courseId=maCourseId, body=newStudent))
batch1_3.add(service.courses().students().create(courseId=muCourseId, body=newStudent))
batch1_3.add(service.courses().students().create(courseId=peCourseId, body=newStudent))
batch1_3.add(service.courses().students().create(courseId=reCourseId, body=newStudent))
batch1_3.add(service.courses().students().create(courseId=scCourseId, body=newStudent))
batch1_1.execute()
time.sleep(1)
batch1_2.execute()
time.sleep(1)
batch1_3.execute()
time.sleep(1)
それん仕事、しかし、時々、個々の要求が戻る:
"HttpError 500 ALTをhttps://classroom.googleapis.com/v1/courses/[COURSE ID] /学生を要求するときに= JSONが返さ? ""
を内部エラー"これらの個々の要求については、5xxエラーを受け取ったときに個々の失敗した要求を再試行するようにコードを記述したいと思います。私はこれを実装する方法がわかりません。
現時点では、わずか1人の生徒がコースに参加していない場合は、スクリプト全体を再実行する必要があります。もちろん、リソースの無駄です。