Class LockService
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Servicio de bloqueo
Impide el acceso simultáneo a secciones de código. Esto puede ser útil cuando tienes varios usuarios
o procesos que modifican un recurso compartido y deseas evitar colisiones.
Métodos
Método | Tipo de datos que se muestra | Descripción breve |
getDocumentLock() | Lock | Obtiene un bloqueo que impide que cualquier usuario del documento actual ejecute de forma simultánea una sección de código. |
getScriptLock() | Lock | Obtiene un bloqueo que evita que cualquier usuario ejecute una sección de código de forma simultánea. |
getUserLock() | Lock | Obtiene un bloqueo que impide que el usuario actual ejecute una sección de código de forma simultánea. |
Documentación detallada
getDocumentLock()
Obtiene un bloqueo que impide que cualquier usuario del documento actual ejecute de forma simultánea una sección de código. Una sección de código protegida por un bloqueo de documentos puede ejecutarse de forma simultánea a través de instancias de secuencia de comandos que se ejecutan en el contexto de diferentes documentos, pero no más de una ejecución para un documento determinado. Ten en cuenta que la cerradura no se adquiere hasta que se llama a Lock.tryLock(timeoutInMillis)
o Lock.waitLock(timeoutInMillis)
. Si se llama a este método fuera del contexto de un
documento contenedor (como desde una secuencia de comandos o una webapp independientes), se muestra null
.
Volver
Lock
: Es un bloqueo centrado en la secuencia de comandos y el documento actual, o null
si se llama desde una secuencia de comandos o una aplicación web independientes.
getScriptLock()
Obtiene un bloqueo que evita que cualquier usuario ejecute una sección de código de forma simultánea. Una sección de código protegida por un bloqueo de secuencia de comandos no se puede ejecutar de forma simultánea, independientemente de la identidad del usuario. Ten en cuenta que la cerradura no se adquiere hasta que se llama a Lock.tryLock(timeoutInMillis)
o Lock.waitLock(timeoutInMillis)
.
Volver
Lock
: Es un bloqueo centrado en la secuencia de comandos.
getUserLock()
Obtiene un bloqueo que impide que el usuario actual ejecute una sección de código de forma simultánea. Diferentes usuarios pueden ejecutar de forma simultánea una sección de código protegida por un bloqueo de usuario, pero no más de una ejecución para un usuario determinado. El bloqueo es "privado" para el usuario. Ten en cuenta que el bloqueo no se adquiere hasta que se llama a Lock.tryLock(timeoutInMillis)
o Lock.waitLock(timeoutInMillis)
.
Volver
Lock
: Es un bloqueo centrado en la secuencia de comandos y el usuario actual.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-26 (UTC)
[null,null,["Última actualización: 2025-07-26 (UTC)"],[[["\u003cp\u003e\u003ccode\u003eLockService\u003c/code\u003e prevents concurrent access to shared resources in Apps Script, avoiding collisions when multiple users or processes modify them.\u003c/p\u003e\n"],["\u003cp\u003eIt offers three types of locks: \u003ccode\u003egetDocumentLock()\u003c/code\u003e, \u003ccode\u003egetScriptLock()\u003c/code\u003e, and \u003ccode\u003egetUserLock()\u003c/code\u003e, each with different scopes of access restriction.\u003c/p\u003e\n"],["\u003cp\u003eThese locks are acquired using \u003ccode\u003eLock.tryLock(timeoutInMillis)\u003c/code\u003e or \u003ccode\u003eLock.waitLock(timeoutInMillis)\u003c/code\u003e methods for controlled access to critical code sections.\u003c/p\u003e\n"],["\u003cp\u003eEach lock type returns a \u003ccode\u003eLock\u003c/code\u003e object that provides methods to manage the lock, ensuring data integrity and consistency in shared environments.\u003c/p\u003e\n"]]],[],null,["# Class LockService\n\nLockService\n\nPrevents concurrent access to sections of code. This can be useful when you have multiple users\nor processes modifying a shared resource and want to prevent collisions. \n\n### Methods\n\n| Method | Return type | Brief description |\n|-----------------------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| [getDocumentLock()](#getDocumentLock()) | [Lock](/apps-script/reference/lock/lock) | Gets a lock that prevents any user of the current document from concurrently running a section of code. |\n| [getScriptLock()](#getScriptLock()) | [Lock](/apps-script/reference/lock/lock) | Gets a lock that prevents any user from concurrently running a section of code. |\n| [getUserLock()](#getUserLock()) | [Lock](/apps-script/reference/lock/lock) | Gets a lock that prevents the current user from concurrently running a section of code. |\n\nDetailed documentation\n----------------------\n\n### `get``Document``Lock()`\n\nGets a lock that prevents any user of the current document from concurrently running a section\nof code. A code section guarded by a document lock can be executed simultaneously by script\ninstances running in the context of different documents, but by no more than one execution for\nany given document. Note that the lock is not actually acquired until [Lock.tryLock(timeoutInMillis)](/apps-script/reference/lock/lock#tryLock(Integer))\nor [Lock.waitLock(timeoutInMillis)](/apps-script/reference/lock/lock#waitLock(Integer)) is called. If this method is called outside of the context of a\ncontaining document (such as from a standalone script or webapp), `null` is returned.\n\n#### Return\n\n\n[Lock](/apps-script/reference/lock/lock) --- a lock scoped to the script and current document, or `null` if called from a\nstandalone script or webapp\n\n*** ** * ** ***\n\n### `get``Script``Lock()`\n\nGets a lock that prevents any user from concurrently running a section of code. A code section\nguarded by a script lock cannot be executed simultaneously regardless of the identity of the\nuser. Note that the lock is not actually acquired until [Lock.tryLock(timeoutInMillis)](/apps-script/reference/lock/lock#tryLock(Integer)) or [Lock.waitLock(timeoutInMillis)](/apps-script/reference/lock/lock#waitLock(Integer)) is called.\n\n#### Return\n\n\n[Lock](/apps-script/reference/lock/lock) --- a lock scoped to the script\n\n*** ** * ** ***\n\n### `get``User``Lock()`\n\nGets a lock that prevents the current user from concurrently running a section of code. A code\nsection guarded by a user lock can be executed simultaneously by different users, but by no\nmore than one execution for any given user. The lock is \"private\" to the user. Note that the\nlock is not actually acquired until [Lock.tryLock(timeoutInMillis)](/apps-script/reference/lock/lock#tryLock(Integer)) or [Lock.waitLock(timeoutInMillis)](/apps-script/reference/lock/lock#waitLock(Integer)) is\ncalled.\n\n#### Return\n\n\n[Lock](/apps-script/reference/lock/lock) --- a lock scoped to the script and current user"]]