[英]How does google script lock works?
我想了解谷歌腳本鎖是如何工作的。
為了更好地理解,讓我創建一個場景:
讓我們假設有 (script1,script2....script30) 30 個同時運行的腳本,這是谷歌的限制。
現在是另一個腳本“script31”
script31 是這樣的:
function xyz()
{
var lock = LockService.getScriptLock();
try { lock.waitLock(10000); } //wait 10 sec
// Do lots of stuff - read sheet and write in many rows and columns
SpreadsheetApp.flush(); // applies all pending spreadsheet changes
lock.releaseLock();
}
現在我的問題是腳本將如何工作。 如果已經有 30 個腳本在運行,是否會等待一個腳本完成?
可以說現在 30 個腳本中只有 29 個同時運行。 等待 10 秒后我的 script31 會被執行嗎?
這種情況會重復出現在 Script32、Script33 等誰在排隊嗎?
無論腳本做什么,任何超過 30 個同時運行的腳本執行的腳本都會拋出異常:
異常信息
如果腳本達到配額或限制,它會拋出異常並顯示類似於以下內容的消息:
There are too many scripts running simultaneously for this Google user account
這表明您同時執行了太多腳本,盡管不一定是同一個腳本。 與上述異常一樣,這最常發生在單個電子表格中重復調用的自定義函數中。
另一方面,腳本鎖僅適用於在waitLock
和releaseLock
方法之間同時執行一段已定義的代碼。 如果其他同時執行不執行鎖定范圍內的代碼,它們將繼續執行。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.