我使用了Google Apps脚本缓存的putAll()21600秒。它已经工作了几个月,直到今天才停止工作-所有从缓存中获取的返回null。该脚本读取一个约有90K条目的.csv文件,删除不需要的字符,然后使用putAll()方法进行缓存。我在开发人员的项目中使用相同的脚本测试了相同的文件,效果很好。因此,它在我的Production项目中不起作用。代码完全相同,如下:
我的作品的项目ID:供应商保留程序GAS-project-id-5629958634838222671
没有错误报告。
function cacheVendorList() {
var dataFilesFolder = DriveApp.getFolderById(dataFileFolderId);
var fileIt = dataFilesFolder.getFilesByName("VendorFile.csv");
if (fileIt != null && fileIt.hasNext()) {
var vendorFile = fileIt.next();
var keyValueStr = "{" + vendorFile.getAs(MimeType.PLAIN_TEXT).getDataAsString().
replace(/SAP,NAME,CMPY,CURRENCY/,'99,Test').
replace(/[^a-zA-Z0-9 ,\n]/g,' ').
replace(/$/mg,'",').
replace(/^\d+,/mg,
function(x) {
return '"' + x.substring(0,x.length-1) + '": "';
}).
replace(/D ",\n",$/,'D "') + "}";
//dataFilesFolder.createFile("VendorFile.txt", keyValueStr, MimeType.PLAIN_TEXT);
//Logger.log(keyValueStr);
var keyValObj = eval("(" + keyValueStr + ")");
// create a new vendor cache
vendorCache.putAll(keyValObj, 21600); // 21600 cache it for 6 hours
Logger.log("0000010100: " + vendorCache.get("0000010100"));
Logger.log("0090000435: " + vendorCache.get("0090000435"));
Logger.log("Got it");
}
}