chika_MM
@chika_MM (chika)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Google Apps Script】getScriptLockでロックできない

解決したいこと

GoogleAppsSprictの同時実行を防ぎたい。
GoogleAppsSprictでgetScriptLockを使用したいのですが、
うまくロックがかからずご教授いただきたいです。

【前提】
・スプレッドシートを複数人で使用
・セル上にボタンを設置しスプリクトを設定

発生している問題・エラー

【問題】
・同じPC、2つの違うアカウントで実行しても同時実行されてしまいます
(エラーにいかない)

該当するソースコード

function reserved_entry() {

//ロックを取得する
var lock = LockService.getScriptLock();

try {
//30秒間のロックを実施する
lock.waitLock(30000);

Browser.msgBox("実行中");
Browser.msgBox("処理が終了しました。");

} catch (e) {

Browser.msgBox("誰か使ってます");
 
} finally {
//ロックを開放する
lock.releaseLock();

}

}

自分で試したこと

getDocumentLockでもロックがかかりませんでした

0

1Answer

Browser.msgBox を使うとロックが解除されてしまうことを教えていただき、
解決できましたのでクローズします。
【メモ】
waitLockやtryLockの指定したミリ秒は、
後から処理を実行した人がロック取得を試みる制限時間。

0Like

Your answer might help someone💌