Class LockService

LockService

禁止并发访问代码段。当您有多个用户或进程修改共享资源并想要防止发生冲突时,这种做法非常有用。

方法

方法返回类型简介
getDocumentLock()Lock获取锁定,以防止当前文档的任何用户同时运行一段代码。
getScriptLock()Lock获取锁,以防止任何用户同时运行一段代码。
getUserLock()Lock获取锁定,以防止当前用户同时运行一段代码。

详细文档

getDocumentLock()

获取锁定,以防止当前文档的任何用户同时运行一段代码。受文档锁定保护的代码部分可以由在不同文档上下文中运行的脚本实例同时执行,但任何给定文档最多只能执行一次。请注意,只有在调用 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 后,系统才会实际获取锁。如果在包含文档的上下文(例如从独立脚本或 Web 应用)中调用此方法,则返回 null

返回

Lock - 锁定到脚本和当前文档,或 null(如果从独立脚本或 Web 应用调用)


getScriptLock()

获取锁,以防止任何用户同时运行一段代码。无论用户的身份如何,均无法同时执行受脚本锁定保护的代码部分。请注意,在调用 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 之前,实际上并不会获取锁。

返回

Lock - 锁定到脚本


getUserLock()

获取锁定,以防止当前用户同时运行一段代码。受用户锁定保护的代码部分可以由不同的用户同时执行,但对于任何给定用户,最多只能由一个执行任务执行。锁定对用户而言是“私有”的。请注意,只有在调用 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 后,系统才会实际获取锁。

返回

Lock - 锁定到脚本和当前用户