Google CacheService putAll()无法正常工作

时间:2018-05-31 07:40:01

标签: google-apps-script

我遇到了CacheService.getScriptCache()。putAll()的问题。

数组是~7k小字符串(~50char),如果我执行以下代码,它很慢但是它有效。

function updateCache(sheet, range, cache){
  var contents = sheet.getRange(range).getValues();
  var db = {};
  for (var i = 0; i < contents.length; i++) {
    var tmp = contents[i][0]==""? "empty":contents[i][0];
    db[tmp] = i;
    cache.put(tmp, i, 86400);
  }
  //cache.putAll(db, 86400);
}

如果我评论put方法并启用putAll行,则会出现以下错误:

  

Spiacenti。 Sièverificatoun errore del server。 Attendi e riprova。

问题非常普遍,我无法理解为什么它不起作用。

由于

1 个答案:

答案 0 :(得分:3)

我之前遇到过同样的情况。那时,当使用putAll()时,如果数字包含在对象的值中,则会发生此类错误。另一方面,可以使用put()。我可以通过将数字转换为字符串来删除错误。因为当我使用put()输入数字时,检索​​到的值变为字符串。我可以注意到这个解决方案。那么在您的脚本中,如何进行以下修改?

来自:

db[tmp] = i;

致:

db[tmp] = i.toString();

db[tmp] = String(i);

如果这不适合您的情况,我很抱歉。