Class LockService

锁定服务

防止对代码段的并发访问。如果您有多个用户或进程在修改共享资源,并且想要防止冲突,那么此功能会非常有用。

方法

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

详细文档

getDocumentLock()

获取一个锁,以防止当前文档的任何用户同时运行一段代码。受文档锁保护的代码段可以由在不同文档上下文中运行的脚本实例同时执行,但对于任何给定文档,执行次数不得超过一次。请注意,在调用 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 之前,实际上不会获取锁。如果此方法是在包含文档的上下文之外(例如从独立脚本或 Web 应用)调用的,则返回 null

返回

Lock|null - 脚本和当前文档范围内的锁,如果从独立脚本或 Web 应用调用,则为 null


getScriptLock()

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

返回

Lock - 脚本范围内的锁定


getUserLock()

获取一个锁,以防止当前用户同时运行一段代码。受用户锁保护的代码部分可由不同用户同时执行,但对于任何给定用户,执行次数不得超过一次。该锁对用户而言是“私密”的。请注意,在调用 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 之前,实际上不会获取锁。

返回

Lock - 锁定范围限定为脚本和当前用户