复制文件时超出脚本运行时配额

时间:2015-01-26 12:06:13

标签: google-apps-script

我正在尝试制作模板文件的副本,并与所有员工分享。

我创建了一张Google表格,其中列出了员工的姓名,他们的电子邮件地址,经理的电子邮件地址以及他/她所在的公司。

我写了以下脚本:

function CopyAndShare (Template, Name, Email, ManagerEmail, Company) {
  var CompanyFolder = DriveApp.searchFolders("title = '" + Company + "'").next();
  Template.makeCopy("Vacationdays 2015 " + Name, CompanyFolder)
         // .addEditor(Email)
         // .addViewer(ManagerEmail);
  Logger.log("Copy created for: %s.", Name);
}

function DistributeFiles() {
  var BaseFile = DriveApp.getFileById("1KBCFA21HbGZRCQXAtghatd8BfpR1PN2N_3L7rYxj1PU"); 
  var Employees = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getDataRange().getValues();
  for (var i = 1, l = Employees.length; i < l; i++) { // i = 1 to skip header
    CopyAndShare(BaseFile, Employees[i][0], Employees[i][1], Employees[i][2], Employees[i][3]);
  }
}

作为测试,我使用addEditor运行此脚本并禁用addViewer功能调用。在120个左右的副本(运行6分钟)之后,脚本停止说超出运行时配额。

我有点惊讶创造了120份副本花了6分钟。我想制作约250份,所以我就在那里。

我可以做些什么来加速我的脚本,所以我不会在6分钟的限制内运行。

我在Google Apps for Work域中执行此操作。

1 个答案:

答案 0 :(得分:1)

Bruce Mcpherson在Google Apps脚本中编写了一个并行处理工具。它的目的是让你大约6分钟的限制。

http://ramblings.mcpher.com/Home/excelquirks/htmlservice/parallel http://ramblings.mcpher.com/Home/excelquirks/htmlservice/parallel/implement