Class LockService
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
LockService
Mencegah akses serentak ke bagian kode. Hal ini dapat berguna jika Anda memiliki beberapa pengguna
atau proses yang mengubah resource bersama dan ingin mencegah konflik.
Metode
Metode | Jenis hasil yang ditampilkan | Deskripsi singkat |
getDocumentLock() | Lock | Mendapatkan kunci yang mencegah pengguna dokumen saat ini menjalankan bagian kode secara serentak. |
getScriptLock() | Lock | Mendapatkan kunci yang mencegah pengguna menjalankan bagian kode secara serentak. |
getUserLock() | Lock | Mendapatkan kunci yang mencegah pengguna saat ini menjalankan bagian kode secara serentak. |
Dokumentasi mendetail
getDocumentLock()
Mendapatkan kunci yang mencegah pengguna dokumen saat ini menjalankan bagian kode secara serentak. Bagian kode yang dijaga oleh kunci dokumen dapat dieksekusi secara bersamaan oleh instance skrip yang berjalan dalam konteks dokumen yang berbeda, tetapi tidak lebih dari satu eksekusi untuk dokumen tertentu. Perhatikan bahwa kunci tidak benar-benar diperoleh hingga Lock.tryLock(timeoutInMillis)
atau Lock.waitLock(timeoutInMillis)
dipanggil. Jika metode ini dipanggil di luar konteks
dokumen yang berisi (seperti dari skrip mandiri atau webapp), null
akan ditampilkan.
Pulang pergi
Lock
— kunci yang dicakupkan ke skrip dan dokumen saat ini, atau null
jika dipanggil dari skrip mandiri atau webapp
getScriptLock()
Mendapatkan kunci yang mencegah pengguna menjalankan bagian kode secara serentak. Bagian kode
yang dijaga oleh kunci skrip tidak dapat dieksekusi secara bersamaan, terlepas dari identitas
pengguna. Perhatikan bahwa kunci tidak benar-benar diperoleh hingga Lock.tryLock(timeoutInMillis)
atau Lock.waitLock(timeoutInMillis)
dipanggil.
Pulang pergi
Lock
— kunci yang dicakupkan ke skrip
getUserLock()
Mendapatkan kunci yang mencegah pengguna saat ini menjalankan bagian kode secara serentak. Bagian kode
yang dijaga oleh kunci pengguna dapat dieksekusi secara bersamaan oleh pengguna yang berbeda, tetapi tidak
lebih dari satu eksekusi untuk pengguna tertentu. Kunci bersifat "pribadi" bagi pengguna. Perhatikan bahwa
kunci tidak benar-benar diperoleh hingga Lock.tryLock(timeoutInMillis)
atau Lock.waitLock(timeoutInMillis)
dipanggil.
Pulang pergi
Lock
— kunci yang dicakupkan ke skrip dan pengguna saat ini
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-26 UTC.
[null,null,["Terakhir diperbarui pada 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"]]