微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我总是收到“异常:服务在短时间内调用太多次:组读取在调用之间尝试 Utilities.sleep(1000)”? 可能的问题:您可以采取的可能步骤:参考:

如何解决为什么我总是收到“异常:服务在短时间内调用太多次:组读取在调用之间尝试 Utilities.sleep(1000)”? 可能的问题:您可以采取的可能步骤:参考:

我刚刚运行了 Apps 脚本教程中的示例代码

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 小时内第一次运行脚本,我也会收到此异常。有什么建议吗?

解决方法

一定是getGroups()的限制。

我通过更改子组的数量测试了一个组。结果如下。

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

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

,

可能的问题:

  • 有很多呼叫您的 getEmail()。即使函数被执行一次,在超过配额的短时间内,在循环内连续多次调用 childGroup.getEmail()
  • 每天读取的组数限制为 2000/10000(取决于您的帐户)。如果你的超过了这个限制,那么它就达到了配额。如果没有,那么它可能达到了每分钟/小时的配额(还没有找到文档,每分钟/小时是多少)

groups

您可以采取的可能步骤:

  • 将您的 sleep 函数放在循环中,这样它就会暂停每个循环,从而减少每分钟/小时的调用次数。看看这是否能缓解问题。
  for (var i = 0; i < childGroups.length; i++) {
    var childGroup = childGroups[i];
    console.log(childGroup.getEmail());
    Utilities.sleep(10000);
  }
  • 如果没有,请检查您的 childGroups 的长度。如果超出限制,请尝试将循环限制为 1950/9950(如果它解决了问题)。如果修复了它,则确认您的函数由于达到配额而失败。
  for (var i = 0; i < 1950; i++) { // or 9950,depending on the account
    var childGroup = childGroups[i];
    console.log(childGroup.getEmail());
    Utilities.sleep(10000);
  }

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?