【发布时间】:2017-12-17 15:34:12
【问题描述】:
所以,我在这里编写了一个将学生添加到课程中的脚本(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)
它确实有效,但是,有时个别请求会返回:
“请求https://classroom.googleapis.com/v1/courses/[COURSE ID 时的HttpError 500]/students?alt=json 返回“内部错误””
对于这些单独的请求,我想编写代码,以便在收到 5xx 错误时重试单个失败的请求。我不确定如何实现这一点。
目前,即使只有 1 个学生没有参加课程,我也必须重新运行整个脚本,这当然是一种资源浪费。
【问题讨论】:
标签: python google-api google-api-python-client exponential-backoff