【发布时间】:2017-11-02 00:30:57
【问题描述】:
我正在使用电子表格生成一堆用于证书的 Google 文档。我知道当我在云端硬盘中循环浏览文件夹或文件时,我可以使用延续令牌来保存我的迭代点,但是在从电子表格生成文件时我很难做到这一点。
脚本没有 UI,如果可能的话,我想远离创建一个,所以我不想使用服务器/客户端回调来检查。
在绑定脚本中执行小循环(20-25 个文件)然后检查数组长度以继续的最佳方法是什么?循环遍历工作表而不是文件夹时是否可以获得令牌?
【问题讨论】:
我正在使用电子表格生成一堆用于证书的 Google 文档。我知道当我在云端硬盘中循环浏览文件夹或文件时,我可以使用延续令牌来保存我的迭代点,但是在从电子表格生成文件时我很难做到这一点。
脚本没有 UI,如果可能的话,我想远离创建一个,所以我不想使用服务器/客户端回调来检查。
在绑定脚本中执行小循环(20-25 个文件)然后检查数组长度以继续的最佳方法是什么?循环遍历工作表而不是文件夹时是否可以获得令牌?
【问题讨论】:
我没有尝试获取令牌,而是在脚本中添加了一个简单的实用程序函数来检查每个循环的运行时间并正确关闭。
function isTimeUp_(starttime) {
var now = new Date();
return now.getTime() - starttime.getTime() > 270000; // 4.5 minutes
}
function makeDocs() {
var starttime = new Date();
for(var i=0; i<data.length; i++) {
if (isTimeUp_(starttime )) {
Logger.log("Time up, finished on row " + i);
break;
}
// rest of the loop if false
}
}
脚本在设置为 15 分钟的时间触发器上运行。检查状态列以在下一个触发事件时在正确的位置开始循环。
【讨论】: