在的LockService文檔:https://developers.google.com/apps-script/service_lock它指出「getPublicLock() - 獲取一個鎖,用於防止對通過同時執行當前用戶一個部的代碼併發訪問」的LockService歧義
所以查詢是圍繞評論:「部分代碼」。如果我有使用LockService.getPublicLock()的多段代碼,它們實質上是獨立的鎖嗎?
例如:
function test1() {
var lock = LockService.getPublicLock();
if (lock.tryLock(10000)) {
// Do some critical stuff
lock.releaseLock();
}
}
function test2() {
var lock = LockService.getPublicLock();
if (lock.tryLock(10000)) {
// Do some critical stuff
lock.releaseLock();
}
}
如果我有()我的腳本併發執行的兩個調用,一個用戶test1的訪問和其他用戶訪問test2的(),將它們都成功嗎?或者,因爲它暗示在這篇文章中:http://googleappsdeveloper.blogspot.co.uk/2011/10/concurrency-and-google-apps-script.html只是在腳本級別的鎖?所以對於這種情況,只有test1()或test2()中的一個可以成功,但不能同時成功。
如果確實如文檔所述,並且兩者都會成功,那麼表示「代碼段」是什麼?它是LockService.getPublicLock()出現的行號還是周圍的函數?
這個答案/場景仍然準確嗎?我試圖確定一個單獨的鎖實例是否可以在單獨的函數中使用('.getPublicLock()'似乎不再存在,但是'getScriptLock()')。所以'var lock_01 = LockService.getScriptLock();'可以在'function_01()'中使用,'var lock_02 = LockService.getScriptLock();'可以在'function_02()'中使用嗎? – user1063287 2017-07-19 04:30:56