2012-05-07 6 views
1

현재 Google 캘린더는 하루에 한 번씩 6 개월 동안 50 명을 대상으로 작성하는 것을 목표로 작성되었습니다. 이러한 이벤트는 시작/종료 시간이 다를 수 있으며 하루 종일 이벤트가 될 수도 있고 그렇지 않을 수도 있습니다. 캘린더는 모두 동일한 Google 계정에 작성되며 사용자는 개인 계정을 사용하여 캘린더를 구독합니다.Google Apps Script - Google 캘린더 작성을위한 코드 최적화

캘린더 데이터는 원래 Google 스프레드 시트에 저장됩니다. 내 스크립트는 권장대로 getRange.getValues ​​메소드를 사용하여이 스프레드 시트를 한 번에 읽지 만 for 루프 내에서 .createEvent 메소드를 사용하는 경우를 제외하고는 쓰기를 "일괄 처리"하는 방법을 찾을 수 없습니다. 이 루프는 실행하기에는 너무 길기 때문에 전체 루프의 약 9000 개의 달력 이벤트가 5 분 범위를 초과하므로 길의 약 1/10이 죽습니다.

.createEvent 행을 주석 처리하면 스크립트가 제대로 실행됩니다.

Google 캘린더에 쓰기를 최적화하는 방법이 있습니까 (배열을 .createEvent 또는 기타 ...로 전달)?

답변

0

캘린더 API에는 배치 방법이 없습니다. "느린"루프에 하나씩 삽입해야합니다.

내 스크립트에서 사용하는 솔루션은로드를 "실행 가능한"청크로 나누는 것입니다. 처리가 완료되었거나 완료되지 않은 경우 각 행에 저장하거나 마지막으로 중지 한 행을 셀 (예 : 셀 또는 스크립트 속성)에 저장할 수 있습니다. 그런 다음 스크립트가 공유 작업을 마쳤 으면 (예 : 3000 개의 이벤트) 스크립트가 자동으로 중지되도록 구성하십시오.

이미 본적이 있는지 잘 모르겠지만 다양한 API에 대한 할당량을 볼 수있는 새로운 dashboard이 있습니다. 이 제한 시간 할당량을 해결하면 캘린더가 실행됩니다. 좋은 소식은이 로드를 분산하면 솔루션을 통해 문제를 해결하는 데 도움이됩니다.

+0

감사합니다. – Max

관련 문제