Отключить несколько экземпляров триггера onSubmit во время отправки - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть форма с триггером onSubmit, который будет использоваться в качестве надстройки для всего домена. Надстройка может использоваться для многих форм.Мне нужно отключить несколько триггеров отправки, вместо этого запустить только 1 экземпляр в настоящее время.Скажем, отправка формы происходит одновременно, мне нужно избегать дублирования экземпляров скрипта, запущенного во время работы текущего скрипта.Я пытался использовать службу блокировки

function onFormSubmit(e) {
    // lock the document response
    var lock = LockService.getDocumentLock();
    if (lock.hasLock()) return;
    //do some tasks
    lock.releaseLock();
}

Как мне сделать скрипт (аддон) для запуска в качестве отдельного экземпляра.

ОБНОВЛЕНИЕ: Этот код тоже не достигает желаемогофункциональность

function OnSubmits(e) {
    var releaseLock;

    releaseLock = function() {
        lock.releaseLock();

    }

    var lock = LockService.getDocumentLock();
    lock.tryLock(1);
    if (!lock.hasLock()) {
        return;
    }
    var value = cUseful.Utils.expBackoff(function() {
        releaseLock();
        return PropertiesService.getScriptProperties().getProperty('key');
    });
    if (value == null) value = 0;
    else value++;
    cUseful.Utils.expBackoff(function() {
        var folder = DriveApp.getFolderById("1wFGMh38JGarJd8CaiaOynlB7iiL_Pw6D");
        folder.addFile(DriveApp.getFileById(DocumentApp.create('Document Name ' + value).getId()));
        PropertiesService.getScriptProperties().setProperty('key', value);
    });

    releaseLock();
}
...