Class LockService

ЛокСервис

Предотвращает одновременный доступ к разделам кода. Это может быть полезно, если несколько пользователей или процессов изменяют общий ресурс и хотят предотвратить коллизии.

Методы

Метод Тип возврата Краткое описание
getDocumentLock() Lock Получает блокировку, которая не позволяет любому пользователю текущего документа одновременно запускать раздел кода.
getScriptLock() Lock Получает блокировку, которая не позволяет любому пользователю одновременно запускать раздел кода.
getUserLock() Lock Получает блокировку, которая не позволяет текущему пользователю одновременно запускать раздел кода.

Подробная документация

getDocumentLock()

Получает блокировку, которая не позволяет любому пользователю текущего документа одновременно запускать раздел кода. Участок кода, защищенный блокировкой документа, может выполняться одновременно экземплярами сценария, работающими в контексте разных документов, но не более чем одним выполнением для любого данного документа. Обратите внимание, что блокировка фактически не будет получена до тех пор, пока не будет вызван Lock.tryLock(timeoutInMillis) или Lock.waitLock(timeoutInMillis) . Если этот метод вызывается вне контекста содержащего его документа (например, из автономного скрипта или веб-приложения), возвращается null .

Возвращаться

Lock — блокировка, ограниченная сценарием и текущим документом, или null если она вызывается из автономного скрипта или веб-приложения.


getScriptLock()

Получает блокировку, которая не позволяет любому пользователю одновременно запускать раздел кода. Участок кода, защищенный блокировкой сценария, не может выполняться одновременно независимо от личности пользователя. Обратите внимание, что блокировка фактически не будет получена до тех пор, пока не будет вызван Lock.tryLock(timeoutInMillis) или Lock.waitLock(timeoutInMillis) .

Возвращаться

Lock — блокировка, ограниченная сценарием.


getUserLock()

Получает блокировку, которая не позволяет текущему пользователю одновременно запускать раздел кода. Участок кода, защищенный пользовательской блокировкой, может выполняться одновременно разными пользователями, но не более одного выполнения для каждого данного пользователя. Блокировка является «частной» для пользователя. Обратите внимание, что блокировка фактически не будет получена до тех пор, пока не будет вызван Lock.tryLock(timeoutInMillis) или Lock.waitLock(timeoutInMillis) .

Возвращаться

Lock — блокировка, ограниченная сценарием и текущим пользователем.