Google calendar api 谷歌应用程序脚本-用于写入谷歌日历的代码优化

Google calendar api 谷歌应用程序脚本-用于写入谷歌日历的代码优化,google-calendar-api,google-apps-script,Google Calendar Api,Google Apps Script,我目前正在写一个脚本,目标是在6个月内为50人编写谷歌日历,每天一次。这些事件可以有不同的开始/结束时间,可以是全天事件,也可以不是全天事件。日历将全部写在同一个谷歌账户上,用户将使用他们的个人账户订阅 日历的数据最初存储在谷歌电子表格中。我的脚本按照建议使用getRange.getValues方法一步读取此电子表格,但除了在for循环中使用.createEvent方法外,我找不到批处理写入的方法。该循环在整个过程中大约1/10被终止,因为它太长,无法为整个批次运行大约9000个日历事件,超过了

我目前正在写一个脚本,目标是在6个月内为50人编写谷歌日历,每天一次。这些事件可以有不同的开始/结束时间,可以是全天事件,也可以不是全天事件。日历将全部写在同一个谷歌账户上,用户将使用他们的个人账户订阅

日历的数据最初存储在谷歌电子表格中。我的脚本按照建议使用getRange.getValues方法一步读取此电子表格,但除了在for循环中使用.createEvent方法外,我找不到批处理写入的方法。该循环在整个过程中大约1/10被终止,因为它太长,无法为整个批次运行大约9000个日历事件,超过了5分钟的范围

如果我注释掉.createEvent行,脚本运行完全正常


有没有一种方法可以将数组传递给.createEvent或其他东西来优化对Google日历的写入

日历API没有批处理方法。你必须在慢循环中一个接一个地插入

我在脚本中使用的解决方案是将负载划分为可行的块。您可以在每一行上保存(如果已处理或未处理该行),也可以将最后停止的行保存在某个位置,例如单元格或脚本属性。然后,将脚本配置为在完成其共享(例如3000个事件)后自行停止

我不确定你是否已经看过了,但是有一个新的地方你可以看到你对各种API的配额。似乎在你解决了这个时间限制配额后,你会遇到日历。好消息是,这种分散负载的解决方案也将帮助您处理它