Как насчет этого ответа?Я думаю, что может быть несколько подходов.Поэтому, пожалуйста, подумайте об этом как об одном из них.
В вашей ситуации, когда i
равно 100, a
возвращает null
.На этом цикл for заканчивается.При использовании следующего сценария обнаруживается, что в CacheService имеется более 100 свойств.
var cache = CacheService.getScriptCache();
var toCache = {};
var keys = [];
for (var i = 0; i < 2000; i++) {
var key = "key" + i;
keys.push(key);
toCache[key] = "value" + i;
}
cache.putAll(toCache);
var r = cache.getAll(keys);
Logger.log(keys.length) // 2000
Logger.log(Object.keys(r).length) // 900
Но также обнаружено, что, хотя 2000 свойств отправляются, извлекается только 900 свойств.И я не смог найти закономерности утраченных свойств.Исходя из этого результата, я подумал, что может быть максимальное количество свойств, которые можно выдвинуть.
Эксперимент:
В качестве эксперимента я исследовал количество найденных свойств с увеличениемколичество заданных свойств.Каждое свойство было сдвинуто сразу.На следующем рисунке показан результат.
На этом рисунке для приведенного выше сценария установлено, что 900 свойств - это максимальное количество свойств, которые могут бытьтолкнул сразу.Это не зависело от размера значений менее 100 кБайт.Также можно получить следующие баллы:
- При нажатии на свойства от 1 до 900 все свойства могут быть восстановлены правильно.
- Когда отправлено 1000 свойств, извлекается 1-900 свойств.Свойства после 900 не могут быть восстановлены.Считается, что эти свойства не передаются.
- Когда 2000 свойств передаются, извлекается 900 свойств.Но я не смог найти их закономерность.
- После того, как 900 свойств были переданы с использованием имен ключей «keyA1, keyA2, keyA3 ,,,», когда 100 свойств были переданы с использованием имен ключей «keyB1, keyB2», keyB3 ,,, ", 1000 свойств могут быть правильно восстановлены.
- Но после того, как 900 свойств были переданы с использованием имен ключей "keyA1, keyA2, keyA3 ,,,", когда 101 свойство передано с использованием имен ключей "keyB1, keyB2, keyB3 ,,,", только 900 свойствполученыВ этом случае свойства «keyA» были перезаписаны 101 свойством «keyB».
Эти результаты были такими же, как у CacheService.getScriptCache()
, CacheService.getUserCache()
и CacheService.getDocumentCache()
.Но каждый метод CacheService.getScriptCache()
, CacheService.getUserCache()
и CacheService.getDocumentCache()
может использоваться как отдельное хранилище.Таким образом, когда используются 3 метода, можно использовать 3000 свойств.
Сводка:
- Максимальное количество свойств, которые можно нажать один раз, равно 900.
- Когдадобавлены свойства 100 свойств после того, как 900 свойств были переданы, 1000 свойств могут быть сохранены.
- Считается, что это максимальное число.
- Методы
CacheService.getScriptCache()
, CacheService.getUserCache()
и CacheService.getDocumentCache()
независимы. - При использовании
CacheService.getScriptCache()
, CacheService.getUserCache()
и CacheService.getDocumentCache()
можно использовать 3000 свойств.
Обходной путь:
Из приведенных выше результатов, когда вы нажимаете свойства "~ 2500 * 3", как насчет следующего обходного пути?
- Поместите несколько значений в одно свойство.
- Используйте методы
CacheService.getScriptCache()
, CacheService.getUserCache()
и CacheService.getDocumentCache()
. - Таким образом можно использовать 3000 свойств.
Я думаю, что свойства "~ 2500 * 3" могут быть переданы в CacheService с помощью комбинацииЭти.
Примечание:
- При использовании
CacheService.getDocumentCache()
, пожалуйста, используйте связанный с контейнером сценарий. - В этом отчете я подтвердил свой аккаунт.Я не уверен, что все результаты других пользователей одинаковы.Я извиняюсь за эту ситуацию.
Ссылка:
Если вышеуказанные результаты уже былисообщили и / или это было не то, что вы хотите, извините.