Lock Service
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
قفل
این سرویس به اسکریپت ها اجازه می دهد تا از دسترسی همزمان به بخش های کد جلوگیری کنند. این می تواند زمانی مفید باشد که چندین کاربر یا فرآیندهایی دارید که یک منبع مشترک را تغییر می دهند و می خواهید از برخورد جلوگیری کنید.
کلاس ها
نام | شرح مختصر |
---|
Lock | نمایشی از یک قفل محرومیت متقابل. |
Lock Service | از دسترسی همزمان به بخش های کد جلوگیری می کند. |
روش ها
روش | نوع برگشت | شرح مختصر |
---|
has Lock() | Boolean | اگر قفل به دست آمده باشد، true برمیگرداند. |
release Lock() | void | قفل را آزاد می کند و به سایر فرآیندهای منتظر روی قفل اجازه می دهد تا ادامه پیدا کنند. |
try Lock(timeoutInMillis) | Boolean | تلاش برای به دست آوردن قفل، زمانی که پس از تعداد میلی ثانیه ارائه شده به پایان می رسد. |
wait Lock(timeoutInMillis) | void | تلاش برای به دست آوردن قفل، با یک استثنا پس از تعداد میلیثانیههای ارائه شده به پایان میرسد. |
روش ها
روش | نوع برگشت | شرح مختصر |
---|
get Document Lock() | Lock | قفلی دریافت می کند که از اجرای همزمان بخشی از کد توسط هر کاربر سند فعلی جلوگیری می کند. |
get Script Lock() | Lock | قفلی دریافت می کند که از اجرای همزمان بخشی از کد توسط هر کاربری جلوگیری می کند. |
get User Lock() | Lock | قفلی دریافت می کند که از اجرای همزمان بخشی از کد توسط کاربر فعلی جلوگیری می کند. |
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eThe Lock service in Apps Script helps prevent conflicts when multiple users or processes access shared resources.\u003c/p\u003e\n"],["\u003cp\u003eIt provides different types of locks: Document Lock, Script Lock, and User Lock, each controlling access at various levels.\u003c/p\u003e\n"],["\u003cp\u003eLocks can be acquired, released, and checked for status using methods like \u003ccode\u003etryLock\u003c/code\u003e, \u003ccode\u003ereleaseLock\u003c/code\u003e, and \u003ccode\u003ehasLock\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTimeouts can be set while acquiring locks to avoid indefinite waiting using methods like \u003ccode\u003etryLock\u003c/code\u003e and \u003ccode\u003ewaitLock\u003c/code\u003e.\u003c/p\u003e\n"]]],["The service provides a mechanism to prevent concurrent code access, crucial for shared resource modification. `LockService` offers methods like `getDocumentLock`, `getScriptLock`, and `getUserLock` to acquire different types of locks. The `Lock` class manages the lock itself, with methods like `hasLock` to check if a lock has been obtained, `releaseLock` to release it, and `tryLock` and `waitLock` to acquire a lock with a timeout.\n"],null,["# Lock Service\n\nLock\n\nThis service allows scripts to prevent concurrent access to sections of\ncode. This can be useful when you have multiple users or processes modifying a\nshared resource and want to prevent collisions.\n\nClasses\n-------\n\n| Name | Brief description |\n|---------------------------------------------------------|-------------------------------------------------|\n| [Lock](/apps-script/reference/lock/lock) | A representation of a mutual-exclusion lock. |\n| [LockService](/apps-script/reference/lock/lock-service) | Prevents concurrent access to sections of code. |\n\n[Lock](/apps-script/reference/lock/lock)\n----------------------------------------\n\n### Methods\n\n| Method | Return type | Brief description |\n|---------------------------------------------------------------------------------|-------------|-------------------------------------------------------------------------------------------------------|\n| [hasLock()](/apps-script/reference/lock/lock#hasLock()) | `Boolean` | Returns true if the lock was acquired. |\n| [releaseLock()](/apps-script/reference/lock/lock#releaseLock()) | `void` | Releases the lock, allowing other processes waiting on the lock to continue. |\n| [tryLock(timeoutInMillis)](/apps-script/reference/lock/lock#tryLock(Integer)) | `Boolean` | Attempts to acquire the lock, timing out after the provided number of milliseconds. |\n| [waitLock(timeoutInMillis)](/apps-script/reference/lock/lock#waitLock(Integer)) | `void` | Attempts to acquire the lock, timing out with an exception after the provided number of milliseconds. |\n\n[LockService](/apps-script/reference/lock/lock-service)\n-------------------------------------------------------\n\n### Methods\n\n| Method | Return type | Brief description |\n|---------------------------------------------------------------------------------|------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| [getDocumentLock()](/apps-script/reference/lock/lock-service#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()](/apps-script/reference/lock/lock-service#getScriptLock()) | [Lock](/apps-script/reference/lock/lock) | Gets a lock that prevents any user from concurrently running a section of code. |\n| [getUserLock()](/apps-script/reference/lock/lock-service#getUserLock()) | [Lock](/apps-script/reference/lock/lock) | Gets a lock that prevents the current user from concurrently running a section of code. |"]]