Class LockService
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Serviço Lock
Impede o acesso simultâneo a seções de código. Isso pode ser útil quando você tem vários usuários
ou processos modificando um recurso compartilhado e quer evitar colisões.
Métodos
Método | Tipo de retorno | Breve descrição |
getDocumentLock() | Lock | Recebe uma trava que impede que qualquer usuário do documento atual execute uma seção
de código simultaneamente. |
getScriptLock() | Lock | Recebe uma trava que impede que qualquer usuário execute uma seção de código simultaneamente. |
getUserLock() | Lock | Recebe uma trava que impede que o usuário atual execute uma seção de código simultaneamente. |
Documentação detalhada
getDocumentLock()
Recebe uma trava que impede que qualquer usuário do documento atual execute uma seção
de código simultaneamente. Uma seção de código protegida por um bloqueio de documento pode ser executada simultaneamente por instâncias
de script em execução no contexto de documentos diferentes, mas não por mais de uma execução para
qualquer documento. A trava não é realmente adquirida até que Lock.tryLock(timeoutInMillis)
ou Lock.waitLock(timeoutInMillis)
seja chamado. Se esse método for chamado fora do contexto de um
documento que o contém (como de um script independente ou de um app da Web), null
será retornado.
Retornar
Lock
: uma trava com escopo para o script e o documento atual ou null
, se chamada de um script independente ou um app da Web.
getScriptLock()
Recebe uma trava que impede que qualquer usuário execute uma seção de código simultaneamente. Uma seção de código
protegida por um bloqueio de script não pode ser executada simultaneamente, independentemente da identidade do
usuário. A trava não é realmente adquirida até que Lock.tryLock(timeoutInMillis)
ou Lock.waitLock(timeoutInMillis)
seja chamado.
Retornar
Lock
: um bloqueio com escopo no script
getUserLock()
Recebe uma trava que impede que o usuário atual execute uma seção de código simultaneamente. Uma seção de código
protegida por um bloqueio de usuário pode ser executada simultaneamente por usuários diferentes, mas não
por mais de uma execução para um determinado usuário. A fechadura é "particular" para o usuário. A
trava não é realmente adquirida até que Lock.tryLock(timeoutInMillis)
ou Lock.waitLock(timeoutInMillis)
seja
chamado.
Retornar
Lock
: um bloqueio com escopo para o script e o usuário atual
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-26 UTC.
[null,null,["Última atualização 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"]]