在我学院的 Google Apps 域中,有成千上万的用户,但我需要遍历所有用户以将它们分配给正确的组。显然,这将超过五分钟的时间限制,所以我试图利用 CacheService 来处理这个问题。问题是要存储对象数组,我需要在函数重新启动时对其进行 jsonStringify 和 jsonParse 处理。但是 jsonParse 的对象失败了,因为对象方法 getUserLoginId 不再存在。我还能如何存储对象数组以便它工作?我错过了一些明显的东西吗?
function functname() {
var users_all = check_cache('cachename');
var num_done = 0;
for(u in users_all) {
Logger.log(users_all[u].getUserLoginId());
users_all.shift();
store_cache('cachename',users_all);
Utilities.sleep(1000);
num_done++;
if(num_done > 100) //prevent timeout
{
break;
}
}
}
function check_cache(cacheKey) {
var cache = CacheService.getPublicCache();
var cachedString = cache.get(cacheKey);
var lstData;
if (cachedString == null) {
lstData = UserManager.getAllUsers();
cache.put(cacheKey, Utilities.jsonStringify(lstData));
Logger.log('Cash NOT used');
}
else {
lstData = Utilities.jsonParse(cachedString);
Logger.log('Cash used' + lstData);
}
return lstData;
}
function store_cache(cacheKey, lstData) {
var cache = CacheService.getPublicCache();
var cachedString = cache.get(cacheKey);
cache.put(cacheKey, Utilities.jsonStringify(lstData));
}