Class LockService

鎖定服務

防止並行存取程式碼區段。如果有多個使用者或程序修改共用資源,且您想避免發生衝突,這項功能就非常實用。

方法

方法傳回類型簡短說明
getDocumentLock()Lock|null取得鎖定,防止目前文件的任何使用者同時執行程式碼區段。
getScriptLock()Lock取得鎖定,防止任何使用者同時執行一段程式碼。
getUserLock()Lock取得鎖定,防止目前使用者同時執行一段程式碼。

內容詳盡的說明文件

getDocumentLock()

取得鎖定,防止目前文件的任何使用者同時執行程式碼區段。受文件鎖定保護的程式碼區段,可由在不同文件環境中執行的指令碼例項同時執行,但任何指定文件最多只能執行一次。請注意,系統要等到呼叫 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 時,才會實際取得鎖定。如果從含有文件的環境以外呼叫這個方法 (例如從獨立指令碼或網頁應用程式),系統會傳回 null

回攻員

Lock|null - 鎖定範圍為指令碼和目前文件,或 null (如果從獨立指令碼或網頁應用程式呼叫)


getScriptLock()

取得鎖定,防止任何使用者同時執行一段程式碼。無論使用者身分為何,受指令碼鎖定保護的程式碼區段都無法同時執行。請注意,系統要等到呼叫 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 時,才會實際取得鎖定。

回攻員

Lock:指令碼範圍內的鎖定


getUserLock()

取得鎖定,防止目前使用者同時執行一段程式碼。受使用者鎖定保護的程式碼區段可由不同使用者同時執行,但每位使用者最多只能執行一次。使用者擁有「私人」鎖定。請注意,系統要等到呼叫 Lock.tryLock(timeoutInMillis)Lock.waitLock(timeoutInMillis) 時,才會實際取得鎖定。

回攻員

Lock:鎖定範圍為指令碼和目前使用者