У меня есть форма с триггером 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();
}