我正在尝试为电子表格自定义功能设置缓存,但结果似乎不一致/意外。有时我会得到缓存的结果,有时它会刷新数据。我已将超时设置为 10 秒,当我在 10 秒内刷新时,有时它会抓取新数据,有时它会缓存。即使自上次通话后等待超过 10 秒,有时我也会得到缓存的结果。为什么电子表格功能有这么多不一致?(或者我只是做错了什么?)。当我直接在实际脚本中调用该函数时,它似乎更加一致,但有时我会得到不一致/意外的结果。
function getStackOverflow(){
var cache = CacheService.getPublicCache();
var cached = cache.get("stackoverflow");
if(cached != null) {
Logger.log('this is cached');
return 'this is cached version';
}
// Fetch the data and create an object.
var result = UrlFetchApp.fetch('http://api.stackoverflow.com/1.1/tags/google-apps-script/top-answerers/all-time');
var json = Utilities.jsonParse(result.getContentText()).top_users;
var rows = [],data;
for (i = 0; i < json.length; i++) {
data = json[i].user;
rows.push(data.display_name);
}
Logger.log("This is a refresh");
cache.put("stackoverflow",JSON.stringify(rows),10);
return rows;
}