Google CacheService putAll () не работает там, где работает put - PullRequest
0 голосов
/ 31 мая 2018

У меня проблемы с CacheService.getScriptCache (). PutAll ().

Массив состоит из ~ 7k маленьких строк (~ 50чар), если я выполняю следующий код, он очень медленный, но работает.

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 è verificato un errore del server.Attendi e riprova.

Проблема очень общая, и я не могу понять, почему она не работает.

Спасибо

1 Ответ

0 голосов
/ 31 мая 2018

Я когда-либо сталкивался с вами в такой ситуации.В то время, когда используется putAll(), если числа были включены в значения объекта, такая ошибка произошла.С другой стороны, можно использовать put().Я мог бы удалить ошибку, преобразовав число в строку.Потому что, когда я ставлю число, используя put(), полученное значение становится строкой.Я мог заметить это решение по этому.Так в вашем скрипте, как насчет следующей модификации?

От:

db[tmp] = i;

Кому:

db[tmp] = i.toString();

или

db[tmp] = String(i);

Еслиэто не было решением для вашей ситуации, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...