Google apps script 我可以在两个不相关的函数中调用Lock,而一个锁不会影响另一个吗?

Google apps script 我可以在两个不相关的函数中调用Lock,而一个锁不会影响另一个吗?,google-apps-script,locking,Google Apps Script,Locking,如果我在code.gs中有两个不相关的函数(每个函数都与不同的Google工作表交互),我可以在两个函数中调用lock,而一个调用不会影响另一个吗 为了进一步了解情况,该应用程序在同一个域中有大约80个用户,正在以我的身份运行,但可能: 用户A调用myFunction_01()的同时 用户B调用myFunction\u 02() 在这种情况下,锁是否会独立运行 以下锁定的实现是否可接受 function myFunction_01() { var my_spreadsheet_01 = S

如果我在
code.gs
中有两个不相关的函数(每个函数都与不同的Google工作表交互),我可以在两个函数中调用
lock
,而一个调用不会影响另一个吗

为了进一步了解情况,该应用程序在同一个域中有大约80个用户,正在以我的身份运行,但可能:

  • 用户A调用myFunction_01()的同时
  • 用户B调用
    myFunction\u 02()
在这种情况下,锁是否会独立运行

以下
锁定的实现是否可接受

function myFunction_01() {

var my_spreadsheet_01 = SpreadsheetApp.openById("YYY");

var lock = LockService.getScriptLock();

try {
  lock.waitLock(30000); 
} catch (e) {
    Logger.log('Could not obtain lock after 30 seconds.');
    var returnObjectCatchError = {};
    returnObjectCatchError['LockErrorFlag'] = "An exception occurred when waiting for lock"; 
    return returnObjectCatchError; 
}

// do things with my_spreadsheet_01 here

var return_object = {};

// apply all pending spreadsheet changes
SpreadsheetApp.flush(); 

//release lock
lock.releaseLock();

return return_object;

}

function myFunction_02() {

var my_spreadsheet_02 = SpreadsheetApp.openById("ZZZ");

var lock = LockService.getScriptLock();

try {
  lock.waitLock(30000); 
} catch (e) {
    Logger.log('Could not obtain lock after 30 seconds.');
    var returnObjectCatchError = {};
    returnObjectCatchError['LockErrorFlag'] = "An exception occurred when waiting for lock"; 
    return returnObjectCatchError; 
}

// do things with my_spreadsheet_02 here

var return_object = {};

// apply all pending spreadsheet changes
SpreadsheetApp.flush(); 

//release lock
lock.releaseLock();

return return_object;

}

确定的最终方法是测试它。这两个函数打开两个不同的电子表格文件,
YYY
ZZZ
,因此一个函数不可能干扰另一个电子表格。如果
myFunction\u 01
myFunction\u 02
都打开同一个电子表格,则可能发生冲突。您的变量名是
active\u电子表格
,但随后您将按ID打开一个电子表格。这就是您想要给出的示例吗?即使同时调用函数1和函数2,它们也会同时独立运行,而不会被锁定。我想,如果
function\u 01
function\u 02
同时运行,并且
lock
function\u 01
运行前的一小部分时间内在
function\u 02
中运行,那么它在
功能中就不可用了?这种思路是基于这样一种说法,即“只有一个公共锁和一个私人锁”。因此,我只是想得到一个确定的、最新的答案,即是否可以将多个锁实例分散在多个函数中——如果不能,官方的替代方案是什么。