【发布时间】:2014-10-15 10:56:36
【问题描述】:
我编写了以下函数来获取 Google 群组的成员,然后遍历他们收集他们的名字和姓氏信息,然后将其以及他们的电子邮件地址写入电子表格行。这在小组中效果很好,但是我需要遍历的一些组包含 2,000 多个成员。当我对这些组运行函数时,超出了执行时间,脚本失败了。
我已经看到一些关于存储数据和使用时间触发器来从脚本停止的地方开始的参考,但到目前为止我还没有能够组合出一种方法来做到这一点......在 Google 上仍然很绿色Apps 脚本前端。
谁能提供任何关于我如何优化它或利用创造性方法来绕过执行时间限制的见解?
function listGroupMembersExt() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var inputsheet = ss.getSheetByName("GroupAddress");
var outputsheet = ss.getSheetByName("Members");
var outputactive = outputsheet.getActiveRange();
outputsheet.clear(outputactive);
var j = 1
var grouprange = inputsheet.getRange(1,2);
var groupemail = grouprange.getValue();
var group = GroupsApp.getGroupByEmail(groupemail);
var users = group.getUsers();
for (var i = 0; i < users.length; i++) {
var user = users[i];
s = user.getEmail();
var useracct = AdminDirectory.Users.get(s);
var firstName = useracct.name.givenName;
var lastName = useracct.name.familyName;
Logger.log(lastName);
var cell = outputsheet.getRange(j, 1, 1, 3)
cell.setValues([[s,firstName,lastName]]);
j++;
}
}
【问题讨论】:
标签: google-apps-script google-apps