簡體   English   中英

谷歌腳本鎖是如何工作的?

[英]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

這表明您同時執行了太多腳本,盡管不一定是同一個腳本。 與上述異常一樣,這最常發生在單個電子表格中重復調用的自定義函數中。

另一方面,腳本鎖僅適用於在waitLockreleaseLock方法之間同時執行一段已定義的代碼 如果其他同時執行不執行鎖定范圍內的代碼,它們將繼續執行。

參考:

Google 服務配額

Class 鎖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM