Google apps script 如何防止多个用户在谷歌工作表中同时运行谷歌应用程序脚本代码?
我正在向多个用户共享一个google脚本表,我只是想防止同一用户同时运行脚本。我该怎么办?是按代码还是仅按设置?正如@TheMaster在评论中所说,Google apps script 如何防止多个用户在谷歌工作表中同时运行谷歌应用程序脚本代码?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在向多个用户共享一个google脚本表,我只是想防止同一用户同时运行脚本。我该怎么办?是按代码还是仅按设置?正如@TheMaster在评论中所说,锁具服务是一条出路。具体来说,您需要或取决于脚本的设置方式 如何在应用程序脚本中使用锁定服务的示例: var timeoutMs = 5000; // wait 5 seconds before giving up var lock = LockService.getScriptLock(); // or LockService.getDoc
锁具服务是一条出路。具体来说,您需要或取决于脚本的设置方式
如何在应用程序脚本中使用锁定服务的示例:
var timeoutMs = 5000; // wait 5 seconds before giving up
var lock = LockService.getScriptLock(); // or LockService.getDocumentLock();
lock.tryLock(timeoutMs);
try {
if (!lock.hasLock()) {
var msg = 'Skipped execution after ' + (timeoutMs / 1000).toString() + ' seconds; script already running.';
console.log(msg);
try {
// If script is being run from a user UI context (ex: from a Menu option),
// gracefully alert the user we gave up
SpreadsheetApp.getUi().alert(msg);
} catch (e2) {}
} else {
//*** ADD CODE YOU WANT TO PROTECT HERE
}
} catch (e) {
console.error(e);
try {
var ui = SpreadsheetApp.getUi();
ui.alert("Error", e ? e.toString() : e, ui.OK);
} catch (e2) {}
}
SpreadsheetApp.flush();
lock.releaseLock();
按代码。您可以尝试LockService