Google电子表格urlfetch错误并更新公式错误

时间:2014-11-04 03:16:21

标签: google-apps-script google-sheets

我的Google电子表格公式如下

function mydata(para1, para2, para3){
  var myurl = "http://someurl/data2?one="+ para1 +"&two=" + para2 + "&three="+para3;
  var result = UrlFetchApp.fetch(myurl);

  var result1 = Utilities.jsonParse(result.getContentText());
  if (result1.length === 0){
      return null;
    }else{
      return result1;
    }

}

我在电子表格中使用过400次这个公式。问题是存在此公式的许多单元格显示错误为Error: Service invoked too many times in a short time: urlfetch. Try Utilities.sleep(1000) 这是第一期。 如果我编辑该公式单元格并再次单击..然后错误仍然存​​在。它应该重新加载/重新计算该公式。这是我的第二个问题。

许多stackoverflow解决方案和各种博文建议尝试使用Utilities.sleep(1000);但在这里我该如何使用它?我没有运行任何循环,在每个循环中我应该像这样等待。那么如何在这里控制这种行为。 也是在第2期;我认为谷歌电子表格正在缓存结果;但我没有得到如何修改/改变“onEdit”

1 个答案:

答案 0 :(得分:0)

  

许多stackoverflow解决方案和各种博文建议尝试使用Utilities.sleep(1000);但在这里我该如何使用呢?

在网址提取请求之后就可以了。即使您没有运行任何循环,也必须调用该函数以便Google返回该错误。如果你在onEdit中调用该函数,那么这将导致函数被调用很多。如果您需要帮助来弄清楚函数被调用的原因,请分享更多代码。

function mydata(para1, para2, para3){
  var myurl = "http://someurl/data2?one="+ para1 +"&two=" + para2 + "&three="+para3;
  var result = UrlFetchApp.fetch(myurl);
  Utilities.sleep(1000);
  var result1 = Utilities.jsonParse(result.getContentText());
  if (result1.length === 0) {
      return null;
    } else {
      return result1;
    }
}
相关问题