【问题标题】:Getting "Script invoked too many times per second" when running script in Google Spreadsheet在 Google 电子表格中运行脚本时出现“每秒调用脚本次数过多”
【发布时间】:2014-03-17 05:40:25
【问题描述】:

我有一个 4 年前使用 Google 电子表格实现的调度应用程序。它为科学博览会创建了时间表(或护照)。去年,为了更容易理解,我创建了一个简单的脚本来查找房间位置以添加到活动中:

function getRoom(project, map) {
  for (var i=0; i < map.length; i++) {
      if (map[i][0] == project)
          return(map[i][1]);
  }
  return("Not Found");
}

脚本在工作表上被调用了近 300 次,因为有近 40 个时间表,每个时间表有 7 个活动。这在去年之前一直很好,在我为今年的科学博览会准备时间表时开始出现此错误。

这是什么配额?

【问题讨论】:

  • 您只需将两个参数传递给函数。从那个 sn-p 中看不出你使用了哪些外部 API。 API 有配额,例如 URLFetch、文档创建数量等。
  • 我收到脚本执行错误,没有外部 API - 今天早上刚打开电子表格,它运行完成。这些简单的脚本调用有一定的配额。知道什么配额是很好的,可以计划一下。
  • 这个脚本是怎么调用的?是自定义函数吗?
  • 是的,调用是在来自其他单元格的同一个电子表格中 - 没什么特别的 - 电子表格在第二天加载。

标签: google-apps-script spreadsheet


【解决方案1】:

您没有发布相关代码或实际错误,所以我将给出一个通用的答案。 1) 阅读有关如何编写高效气体代码的应用程序脚本文档。 2) 优化经常调用的函数。例如,您显示的地图可以重建为按项目索引的哈希。 2)如果仍然失败可能意味着您正在运行时间配额,因为脚本不能运行超过 6 分钟。如果是这样,您需要重写代码,以便它可以按部分处理并记住它停止的位置,以便下次运行时可以从那里继续。手动运行它,直到它完成所有任务或使用时间触发器运行。

【讨论】:

  • 所有好的建议,我第二天又回去了,电子表格通过完成运行,没有任何错误。明年我会重新审视这个并至少实现哈希映射 - 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 2023-03-28
  • 1970-01-01
  • 2023-03-27
  • 2023-03-25
相关资源
最近更新 更多