Class LockService
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
LockService
Verhindert den gleichzeitigen Zugriff auf Codeabschnitte. Das kann nützlich sein, wenn mehrere Nutzer oder Prozesse eine freigegebene Ressource ändern und Kollisionen verhindern möchten.
Methoden
Methode | Rückgabetyp | Kurzbeschreibung |
getDocumentLock() | Lock | Erwirbt eine Sperre, die verhindert, dass andere Nutzer des aktuellen Dokuments einen Codeabschnitt gleichzeitig ausführen. |
getScriptLock() | Lock | Erwirbt eine Sperre, die verhindert, dass ein Nutzer einen Codeabschnitt gleichzeitig ausführt. |
getUserLock() | Lock | Erwirbt eine Sperre, die verhindert, dass der aktuelle Nutzer einen Codeabschnitt gleichzeitig ausführt. |
Detaillierte Dokumentation
getDocumentLock()
Erwirbt eine Sperre, die verhindert, dass andere Nutzer des aktuellen Dokuments einen Codeabschnitt gleichzeitig ausführen. Ein Codeabschnitt, der durch eine Dokumentsperre geschützt ist, kann gleichzeitig von Scriptinstanzen ausgeführt werden, die im Kontext verschiedener Dokumente ausgeführt werden, aber nicht mehr als einmal für ein bestimmtes Dokument. Das Schloss wird erst dann tatsächlich erworben, wenn Lock.tryLock(timeoutInMillis)
oder Lock.waitLock(timeoutInMillis)
aufgerufen wird. Wenn diese Methode außerhalb des Kontexts eines enthaltenden Dokuments aufgerufen wird (z. B. aus einem eigenständigen Script oder einer Webanwendung), wird null
zurückgegeben.
Rückflug
Lock
– eine Sperre, die auf das Script und das aktuelle Dokument beschränkt ist, oder null
, wenn das Script aus einem eigenständigen Script oder einer Webanwendung aufgerufen wird
getScriptLock()
Erwirbt eine Sperre, die verhindert, dass ein Nutzer einen Codeabschnitt gleichzeitig ausführt. Ein Codeabschnitt, der durch eine Scriptsperre geschützt ist, kann unabhängig von der Identität des Nutzers nicht gleichzeitig ausgeführt werden. Das Schloss wird erst dann tatsächlich erworben, wenn Lock.tryLock(timeoutInMillis)
oder Lock.waitLock(timeoutInMillis)
aufgerufen wird.
Rückflug
Lock
– Sperre auf Scriptebene
getUserLock()
Erwirbt eine Sperre, die verhindert, dass der aktuelle Nutzer einen Codeabschnitt gleichzeitig ausführt. Ein Codeabschnitt, der durch eine Nutzersperre geschützt ist, kann von verschiedenen Nutzern gleichzeitig ausgeführt werden, aber nicht mehr als einmal für einen bestimmten Nutzer. Das Schloss ist für den Nutzer „privat“. Die Sperre wird erst erworben, wenn Lock.tryLock(timeoutInMillis)
oder Lock.waitLock(timeoutInMillis)
aufgerufen wird.
Rückflug
Lock
– eine Sperre, die auf das Script und den aktuellen Nutzer beschränkt ist
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-07-26 (UTC).
[null,null,["Zuletzt aktualisiert: 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"]]