Итак, здесь я написал скрипт, который добавляет студентов на курсы (Google Classroom API).
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 при запросе https://classroom.googleapis.com/v1/courses/[COURSE ID] / student? alt = json вернул "Внутреннюю ошибку" "
И для этих отдельных запросов я хотел бы написать код, чтобы он повторял индивидуальный неудавшийся запрос при получении ошибки 5xx. Однако я не уверен, как это реализовать.
В настоящий момент мне приходится повторно запускать весь сценарий, если хотя бы 1 студент не дошел до курса, что, конечно же, является пустой тратой ресурсов.