如何解决“一天内服务调用次数过多:urlfetch”错误?

2024-07-03

我在 Google 表格中收到以下错误:

Service invoked too many times for one day: urlfetch

我知道事实上我没有进行 100k 次调用,但我的工作表中确实有很多自定义函数。我尝试制作一张新工作表并将脚本复制/粘贴到该工作表中,但仍然遇到相同的错误。我然后switched我的帐户,制作了一张新表,添加了代码,然后我still收到错误。

这只是因为我在同一台计算机上吗?谷歌是否足够聪明,能够意识到我就是同一个人试图做到这一点?我非常怀疑这一点,所以我想知道为什么它会抛出这个错误,即使在切换帐户并制作新表之后也是如此。

除此之外,有什么办法可以确保我以后不会超过限制吗?这个错误让我的工作至少倒退了一天。我确实计划编写一个脚本,将导入的 HTML 作为值复制/粘贴到另一个工作表中,但在我开始工作之前,我需要一个临时修复。


示例代码:

function tbaTeamsAtEvent(eventcode){
  return ImportJSON("https://www.thebluealliance.com/api/v3/event/" + eventcode + "/teams?X-TBA-Auth-Key=" + auth_key);
}

function ImportJSONForTeamEvents(url, query, options){
  var includeFunc = includeXPath_;
  var transformFunc = defaultTransform_;
  var jsondata = UrlFetchApp.fetch(url);
  var object   = JSON.parse(jsondata.getContentText());
  var newObject = [];
  for(var i = 0; i < object.length; i++){
    var teamObject = {};
    teamObject.playoff = object[i].alliances
    
    newObject.push(teamObject);
  }
  
  return parseJSONObject_(object, query, "", includeFunc, transformFunc);
}

这是用于特定功能的一组“代码”。我多次拉动两个不同的功能。我有大约 600 个某个函数,还有 4 个另一个函数。如果所有调用同时运行,那只会有一千多个调用。

我应该注意到,我的驱动器中还有另一张表,它每小时自动更新一次UrlFetch。但我认为这不会影响这一点,因为拉动率非常低。


即使我只在函数中调用两个 fetch 调用以及每个数据行的每个函数,我也遇到了类似的问题。它呈指数级增长,并且随着我的数据发生变化,每个重新计算调用也称为“已运行”,这很快就达到了最大值。
我的解决方案?我开始使用缓存服务临时存储提取调用的结果,即使只有几秒钟,以允许仅使用单个调用来传播由同一重新计算事件触发的所有单元格。每次访问工作表时,这个简单的添加都为我节省了数千次 fetch 调用。

以供参考:https://developers.google.com/apps-script/reference/cache?hl=en https://developers.google.com/apps-script/reference/cache?hl=en

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决“一天内服务调用次数过多:urlfetch”错误? 的相关文章

随机推荐