[GAS][Cache]複数のプロジェクトでキャッシュを共有するには: 逆引きGoogle Apps Script

2012 年 9 月 1 日 土曜日

CacheServiceで保存したキャッシュは、キャッシュを保存したプロジェクトでのみ有効だが、ライブラリを仲介することにより、複数のプロジェクト間でキャッシュを共有することができる。

▼ライブラリソースコード

/**
 * 共有キャッシュを保存する
 * 
 * @param String key キャッシュキー
 * @param String text キャッシュに保存する文字列
 */
function putSharedCache(key,text){
  var cache = CacheService.getPublicCache();
  cache.put(key, text, 60*60*24*7);
}

/**
 * 共有キャッシュから値を取得する
 * 
 * @param String key キャッシュキー
 * @return 保存されたキャッシュ
 */
function getSharedCache(key){
  var cache = CacheService.getPublicCache();
  var cached = cache.get(key);
  return cached;
}

/**
 * 共有キャッシュをクリアする
 * 
 * @param String key 削除するキャッシュキー
 */
function clearSharedCache(key){
  var cache = CacheService.getPublicCache();
  cache.remove(key);
}

▼プロジェクトA:キャッシュを保存

function saveCache(){
  sampleLibrary.putSharedCache('sampleKey','キャッシュする文字列');
}

▼プロジェクトB:プロジェクトAで保存したキャッシュを取得

function getCache(){
  var cachedText = sampleLibrary.getSharedCache('sampleKey');
  Browser.msgBox(cachedText);
}

プロジェクトA、プロジェクトBはそれぞれ同じライブラリを参照している必要がある。このサンプルスクリプトでは、「sampleLibrary」という名称でIdentifierを設定している。

ライブラリの作成、利用について詳しくは、「ライブラリを作成するには」と「ライブラリを利用するには」参照。

キャッシュの作成、利用について詳しくは、「キャッシュを保存するには」と「キャッシュを取得するには」参照。

関連記事

コメントをどうぞ

トラックバック

このエントリーのトラックバックURL:

http://www.bmoo.net/archives/2012/08/314628.html/trackback