Class LockService

LockService

防止对代码段进行并发访问。如果有多个用户或进程修改共享资源,并且您希望防止冲突,这会很有用。

方法

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

详细文档

getDocumentLock()

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

返回

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


getScriptLock()

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

返回

Lock - 脚本级范围的锁


getUserLock()

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

返回

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