0

私の大学の Google Apps ドメインには何千ものユーザーがいますが、正しいグループに割り当てるには、それらすべてをトラバースする必要があります。明らかに、これは 5 分の時間制限を超えるため、これを処理するために CacheService を利用しようとしています。問題は、オブジェクト配列を保存するために、それを jsonStringify し、関数の再起動時に jsonParse する必要があることです。しかし、オブジェクト メソッド getUserLoginId が存在しないため、jsonParse されたオブジェクトは失敗します。オブジェクト配列を保存して機能させるには、他にどのようにすればよいですか? 明らかな何かが欠けていますか?

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));
}
4

1 に答える 1

0

関数を文字列化することはできず、データのみを文字列化することはできません。代わりに、DomainUser のデータからカスタム オブジェクトを作成し、代わりにそれを文字列化して解析する必要があります。

于 2012-09-26T23:19:03.263 に答える