Google AppScript Lock не работает - PullRequest
0 голосов
/ 14 июля 2020

Я добавляю код в таблицу Google и использовал LockService.getDocumentLock() для блокировки.

Моя проблема в том, что это не работает. Я могу без проблем выполнить один и тот же сценарий несколько раз. Вот структура моего кода:

const lock = LockService.getDocumentLock()
global.clickedButton = function() {
  if (lock.tryLock(3000)) {
    Browser.msgBox(`Has Lock? ${lock.hasLock()}`)
    // stuff that takes ~3 minutes
  }
  lock.releaseLock()
}

Если я продолжаю нажимать кнопку, каждый раз запускается новый скрипт. Каждый раз, когда hasLock возвращает истину.

Я делаю что-то глупое, или Блокировки просто не работают?

Я пробовал:

  • Установка блокировки создание внутри функции
  • Использование scriptLock и userLock вместо DocumentLock
  • с использованием lock.waitLock() вместо tryLock. Та же проблема

Вот скриншот. Я нажал кнопку 3 раза:

введите описание изображения здесь

...