Class LockService

LockService

Impede 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étodoTipo de retornoBreve descrição
getDocumentLock()LockRecebe um bloqueio que impede que qualquer usuário do documento atual execute simultaneamente uma seção de código.
getScriptLock()LockRecebe um bloqueio que impede que qualquer usuário execute simultaneamente uma seção de código.
getUserLock()LockRecebe um bloqueio que impede que o usuário atual execute simultaneamente uma seção de código.

Documentação detalhada

getDocumentLock()

Recebe um bloqueio que impede que qualquer usuário do documento atual execute simultaneamente uma seção de código. 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 no máximo uma execução para um documento. Observe que o bloqueio não será adquirido 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 autônomo ou app da Web), null será retornado.

Retorno

Lock: um bloqueio com escopo para o script e o documento atual, ou null se chamado de um script autônomo ou app da Web


getScriptLock()

Recebe um bloqueio que impede que qualquer usuário execute simultaneamente uma seção de código. Uma seção de código protegida por um bloqueio de script não pode ser executada simultaneamente, independente da identidade do usuário. O bloqueio não é adquirido até que Lock.tryLock(timeoutInMillis) ou Lock.waitLock(timeoutInMillis) seja chamado.

Retorno

Lock: um bloqueio com escopo para o script.


getUserLock()

Recebe um bloqueio que impede que o usuário atual execute simultaneamente uma seção de código. Uma seção de código protegida por um bloqueio de usuário pode ser executada simultaneamente por usuários diferentes, mas no máximo uma execução para um usuário. O bloqueio é "particular" ao usuário. Observe que o bloqueio não é realmente adquirido até que Lock.tryLock(timeoutInMillis) ou Lock.waitLock(timeoutInMillis) seja chamado.

Retorno

Lock: um bloqueio com escopo para o script e o usuário atual.