Lock Service

  • The Lock service in Apps Script helps prevent conflicts when multiple users or processes access shared resources.

  • It provides different types of locks: Document Lock, Script Lock, and User Lock, each controlling access at various levels.

  • Locks can be acquired, released, and checked for status using methods like tryLock, releaseLock, and hasLock.

  • Timeouts can be set while acquiring locks to avoid indefinite waiting using methods like tryLock and waitLock.

Lock

This service allows scripts to prevent concurrent access to sections of code. This can be useful when you have multiple users or processes modifying a shared resource and want to prevent collisions.

Classes

NameBrief description
LockA representation of a mutual-exclusion lock.
LockServicePrevents concurrent access to sections of code.

Lock

Methods

MethodReturn typeBrief description
hasLock()BooleanReturns true if the lock was acquired.
releaseLock()voidReleases the lock, allowing other processes waiting on the lock to continue.
tryLock(timeoutInMillis)BooleanAttempts to acquire the lock, timing out after the provided number of milliseconds.
waitLock(timeoutInMillis)voidAttempts to acquire the lock, timing out with an exception after the provided number of milliseconds.

LockService

Methods

MethodReturn typeBrief description
getDocumentLock()LockGets a lock that prevents any user of the current document from concurrently running a section of code.
getScriptLock()LockGets a lock that prevents any user from concurrently running a section of code.
getUserLock()LockGets a lock that prevents the current user from concurrently running a section of code.