【问题标题】:Service invoked too many times for one day: urlfetch一天服务调用次数过多:urlfetch
【发布时间】:2017-09-26 12:37:10
【问题描述】:
我的表格插件出现以下错误:
Service invoked too many times for one day: urlfetch
我知道here 的限制,但是我如何判断我是在达到 100,000 的“URLFetch 调用”还是 100mB 的“收到的 URLFetch 数据”?它们是两个非常不同的问题,如果我遇到第一个问题,我一定是在某个地方无意中提出请求,因为我不可能每天故意拨打 10 万次电话。有可能我达到了 100mb,但是错误表述的方式让我觉得我正在击中第一个,有没有办法确定我击中的是哪一个?
【问题讨论】:
标签:
google-apps-script
google-sheets
【解决方案1】:
我也遇到过。我只有 1000 行输出到 Web 服务。我的工作表和服务中的数据都没有改变。但是在今天的某个时候,我的大多数单元格都显示 #Error 与此原因有关。
我觉得它会过于频繁地重新获取结果。有没有可以使用的缓存?
更新(长期到期):添加缓存正是我们所需要的。所以我实现了一个函数fetch(url),它使用缓存,这样可以避免复制调用。
function fetch(url) {
var cache = CacheService.getScriptCache();
var result = cache.get(url);
if(!result) {
var response = UrlFetchApp.fetch(url);
result = response.getContentText();
cache.put(url, result, 21600);
}
return result;
}