2012-05-07 133 views
1

我目前正在編寫一個腳本,旨在爲一個事件每天在6個月內爲50個人編寫Google日曆。這些事件可以有不同的開始/結束時間,也可以不是全天事件。日曆都將被寫入同一個Google帳戶,用戶將使用他們的個人帳戶訂閱它們。Google Apps腳本 - 用於寫入Google日曆的代碼優化

日曆的數據最初存儲在Google Spreadsheet中。按照建議,我的腳本使用getRange.getValues方法在一個步驟中讀取此電子表格,但我無法找到一種方法來批量寫入,除非在for循環中使用.createEvent方法。由於運行時間太長(整個批次約9000個日曆事件,超過5分鐘範圍),因此該循環會在大約1/10的時間內死亡。

如果我註釋掉.createEvent行,腳本運行完全正常。

有沒有辦法優化寫入Google日曆(將數組傳遞給.createEvent或其他東西)?

回答

0

Calendar API沒有批處理方法。你必須在「慢」循環中逐一插入。

我在腳本中使用的解決方案是將負載分成「可行」塊。如果您已經處理過或沒有處理過,則可以保存在每一行上,也可以在最後停止的行的某個位置(例如單元格或腳本屬性)保存。然後,配置腳本在其共享時(例如3000個事件)自行停止。

我不確定您是否已經看到它,但有一個新的dashboard,您可以在其中看到您對各種API的配額。看來,解決這個時間限制配額後,你會遇到日曆。好消息是,這個傳播負載解決方案也將幫助你處理它。

+0

謝謝,我會試試看。 – Max