我正在尝试使用Google Apps脚本检索所有文件夹及其各自ID的列表。目前,我将结果写入一个数组,然后每5000个记录发布到一个电子表格中。不幸的是,脚本在完成之前达到了执行限制(5分钟)。我该如何解决这个问题?而且,通过HTTP进行RESTful API调用比使用Apps脚本更成功吗?
我注意到以下内容:
代码如下:
function LogAllFolders() {
var ss_index = 1;
var idx = 0;
var folder;
var data = new Array(5000);
for (i=0;i<5000;i++){
data[i] = new Array(2);
}
var ss = SpreadsheetApp.create("FolderInv2",1,2).getSheets()[0];
var root = DriveApp.getFolders();
while(root.hasNext()) {
folder = root.next();
data[idx][0] = folder.getName();
data[idx][1] = folder.getId();
idx++;
if ((ss_index % 5000) == 0) {
ss.insertRowsAfter(ss.getLastRow()+1, 5000);
ss.getRange(ss.getLastRow()+1,1,5000,2).setValues(data);
SpreadsheetApp.flush();
idx = 0;
}
ss_index++;
}
}
答案 0 :(得分:0)
我首先收集您想要首先处理的所有文件夹ID,然后您可以将已处理的文件夹ID(或可能是数组索引)保存到项目属性中,然后每隔五分钟将作业作为CRON运行然后从您之前保存的文件夹ID或索引中恢复。
我想当它完成后,以编程方式删除CRON触发器。