首页 > 解决方案 > 为什么我不断收到“异常:服务在短时间内调用太多次:组读取。在调用之间尝试 Utilities.sleep(1000)。”?

问题描述

我刚刚从 Apps Script 教程中运行了一个示例代码:

https://developers.google.com/apps-script/reference/groups/group#getGroups()

(我已经注释掉了循环部分以使问题更清楚。)

function listGroupMembers() {
  var GROUP_EMAIL = "a-group@in.mydomain";
  var group = GroupsApp.getGroupByEmail(GROUP_EMAIL);
  Utilities.sleep(10000);

  var childGroups = group.getGroups();
  console.log("Group " + GROUP_EMAIL + " has " + childGroup.length + " groups:");

  /* comment out the loop to make the problem clear.
  for (var i = 0; i < childGroups.length; i++) {
    var childGroup = childGroups[i];
    console.log(childGroup.getEmail());
  }
  */

}

但我不断收到以下异常:

Exception: Service invoked too many times in a short time: groups read. Try Utilities.sleep(1000) between calls. 
listGroupMembers    @ test.gs:6

即使我在过去 24 小时内第一次运行脚本,我也会收到此异常。有什么建议吗?

标签: google-apps-scriptgoogle-groupsgoogle-groups-api

解决方案


应该是 的限制getGroups()

我测试了一个更改子组数量的组。下面是结果。

  • 组数:1 到 7:总是成功。
  • 组数:8:有时会失败。
  • 组数:9:有时成功。
  • 组数:10:总是失败。

看起来我们getGroups()只能在子组数量为 7 或更少时使用。


推荐阅读