【发布时间】:2016-06-01 07:57:01
【问题描述】:
最近我的一些应用脚本在同时执行时显示错误。多年来一切都运行良好,显然变化发生在 Google 方面。
不幸的是,错误没有显示文件名和行号以正确调试,但我的第一行是:
var ss = SpreadsheetApp.getActiveSpreadsheet()
因此,我假设应用实例同时调用 SpreadsheetApp 会导致错误。 SpreadsheetApp 不在循环中,也不在任何函数内。调用它来定义应用程序使用的全局变量 ss。
我的应用程序是在我的用户名下执行的,因为用户不应该有权访问我正在访问的电子表格。恐怕我无法将整个电子表格保留在缓存服务中 - 我希望应用在调用电子表格时更新它。
更新:
这是其中一个应用程序的一些相关代码。
function doGet(e){
var ref = e.parameter.ref;
var ss = SpreadsheetApp.openById('########')
var logsheet = ss.getSheetByName('LOG');
logsheet.appendRow([new Date(),ref,JSON.stringify(e.parameter)])
try{
//Main code goes here
return ContentService.createTextOutput(JSON.stringify({result:"ok"})).setMimeType(ContentService.MimeType.JSON);
}catch(e){
return ContentService.createTextOutput(JSON.stringify(e)).setMimeType(ContentService.MimeType.JSON)}
}
如您所见,我在函数中尝试了 {} catch(e),由于我遇到的错误没有被它捕获,我认为它发生在之前。
【问题讨论】:
-
你能从你的脚本中分享更多的代码行吗?
-
嗨阿米特,我从你的例子中学到了很多东西,谢谢!我添加了一个示例代码。错误发生在主执行开始之前,这表明有一些东西需要处理 SpreadsheetApp 调用。有时我的应用程序每分钟被调用 20-30 次。没什么大不了的,应该妥善处理,imo。至少它在几年内运行良好。
标签: google-apps-script google-sheets