我正在构建一个将由多个其他脚本使用的脚本库。这些脚本将同时运行,我需要控制对单个资源(电子表格)的访问。锁定服务getScriptLock()是否可以在库中工作
该文件不完全清楚。 Class Lock示例涉及LockService.getPublicLock();
方法。但是这种方法似乎不再存在。
为了测试我已经创建了具有取得锁的方法doTest一个库中的LockService
:
this.doTest =函数(TestClient的){ VAR锁= LockService.getScriptLock(), 成功;
try {
lock.waitLock(1000);
Logger.log(testClient + ' Obtained lock');
Utilities.sleep(2000);
lock.releaseLock();
} catch (e) {
Logger.log(testClient + ' Could not obtain lock after 2 seconds.');
}
}
测试库在其他两个测试脚本中使用。如果我同时运行测试脚本,则两个脚本有时无法获取锁定。这正是我想看到的。
但考虑到文档中引用另一个方法的例子以及不同脚本中库的用法,我想确定这是它应该如何工作的。
所以问题是:脚本是否锁定跨库工作,并且它会锁定代码段,而不管该库是否用于不同的脚本。还有什么我应该担心的问题吗?