为什么我的某些 Google Apps 脚本的 "limit exceeded" 使用基于时间的触发器?
Why is my "limit exceeded" for some of my Google Apps scripts that are using time-based triggers?
我似乎 运行在使用 Google Apps 脚本时我的 G Suite 帐户遇到了某种未指定的限制,但我不确定该限制是多少 and/or 我应该如何调整我的工作流程。
我有一个 G Suite 企业帐户。
我的 "G Suite Developer Hub".
中大约有 45 个相对简单的项目
每个项目只有一个具有单一功能的小脚本,使用基于时间的触发器设置为 运行 每天 2:00 上午和 3:00 上午。
每个项目的存在只是为了将文件从一个文件夹移动到另一个文件夹,每天一次。每个项目都存在一对不同的文件夹。
这是每个项目中一个小文件的模板,名为 Code.gs
。
var source_folder = DriveApp.getFolderById("xxxxxxxxsourceFolderIDxxxxxxxx")
var dest_folder = DriveApp.getFolderById("xxxxxxxxdestinationFolderIDxxxxxxxx")
function moveFiles() {
var files = source_folder.getFiles();
while (files.hasNext()) {
var file = files.next();
dest_folder.addFile(file);
source_folder.removeFile(file);
}
}
大多数触发器似乎工作正常,但最近我收到了其中两个触发器失败的通知:
Start | Function | Error Message | Trigger | End
6/5/19 2:43 AM | moveFiles | Limit Exceeded: Drive. (line 13, file "Code") | time-based | 6/5/19 2:43 AM
第 13 行只是:source_folder.removeFile(file);
为什么会发生这种情况,我如何才能确保自己不受此限制?
很可能您的 45 个触发器在一段时间内执行了太多操作。有很多选择,
- 与其同时将所有触发器设置为 运行,不如以某种方式分配它们,比如在晚上 11 点将 9 个触发器设置为 运行,在上午 12 点将 9 个触发器设置为 运行,等等。
- 与其使用 1 个帐户设置所有触发器,不如使用多个帐户。
- 而不是让 45 个脚本创建一个 "master" 脚本。也许您应该在每次 folder/file 迭代时添加一个 Utilities.sleep(毫秒)。这是某种微调,具体取决于要移动的文件数量以及您设计主脚本的方式。
我似乎 运行在使用 Google Apps 脚本时我的 G Suite 帐户遇到了某种未指定的限制,但我不确定该限制是多少 and/or 我应该如何调整我的工作流程。
我有一个 G Suite 企业帐户。
我的 "G Suite Developer Hub".
中大约有 45 个相对简单的项目每个项目只有一个具有单一功能的小脚本,使用基于时间的触发器设置为 运行 每天 2:00 上午和 3:00 上午。
每个项目的存在只是为了将文件从一个文件夹移动到另一个文件夹,每天一次。每个项目都存在一对不同的文件夹。
这是每个项目中一个小文件的模板,名为 Code.gs
。
var source_folder = DriveApp.getFolderById("xxxxxxxxsourceFolderIDxxxxxxxx")
var dest_folder = DriveApp.getFolderById("xxxxxxxxdestinationFolderIDxxxxxxxx")
function moveFiles() {
var files = source_folder.getFiles();
while (files.hasNext()) {
var file = files.next();
dest_folder.addFile(file);
source_folder.removeFile(file);
}
}
大多数触发器似乎工作正常,但最近我收到了其中两个触发器失败的通知:
Start | Function | Error Message | Trigger | End
6/5/19 2:43 AM | moveFiles | Limit Exceeded: Drive. (line 13, file "Code") | time-based | 6/5/19 2:43 AM
第 13 行只是:source_folder.removeFile(file);
为什么会发生这种情况,我如何才能确保自己不受此限制?
很可能您的 45 个触发器在一段时间内执行了太多操作。有很多选择,
- 与其同时将所有触发器设置为 运行,不如以某种方式分配它们,比如在晚上 11 点将 9 个触发器设置为 运行,在上午 12 点将 9 个触发器设置为 运行,等等。
- 与其使用 1 个帐户设置所有触发器,不如使用多个帐户。
- 而不是让 45 个脚本创建一个 "master" 脚本。也许您应该在每次 folder/file 迭代时添加一个 Utilities.sleep(毫秒)。这是某种微调,具体取决于要移动的文件数量以及您设计主脚本的方式。